【コピペOK】Javascriptで因数分解をやってみた

Javascriptの授業で因数分解のプログラムを実装しました。
手順としては、
- x^2+ax+bのa, bの値の絶対値をとる(正の数はそのままで、負の数は正の数にする)
- bの約数をすべて抽出する
- bの約数の中から和がaになる組み合わせをみつける
- 出力する
となります。
function keisan(a, b) {
if(a > 0 && b > 0) {
for(let i = 1; i <= b; i++) {
if(b % i == 0) {
if(a == i + b / i){
document.write(`x^2+${a}x+${b}を因数分解すると(x+${i})(x+${b/i})になります。`);
break;
}
}
}
} else if(a < 0 && b < 0) {
a = -1 * a;
b = -1 * b;
for(let i = 1; i <= b; i++) {
if(b % i == 0) {
if(a == i - b / i){
document.write(`x^2-${a}x-${b}を因数分解すると(x-${i})(x+${b/i})になります。`);
break;
}
}
}
} else if(a > 0 && b < 0) {
b = -1 * b;
for(let i = 1; i <= b; i++) {
if(b % i == 0) {
if(a == i - b / i){
document.write(`x^2+${a}x-${b}を因数分解すると(x+${i})(x-${b/i})になります。`);
break;
}
}
}
} else if(a < 0 && b > 0) {
a = -1 * a;
for(let i = 1; i <= b; i++) {
if(b % i == 0) {
if(a == i + b / i){
document.write(`x^2-${a}x+${b}を因数分解すると(x-${i})(x-${b/i})になります。`);
break;
}
}
}
} else {
document.write("計算できません");
}
}
keisan(-5, 6);
// x^2-5x+6を因数分解すると(x-2)(x-3)になります。