RSA 加密算法在网络安全世界中无处不在, 它利用了极大整数因数分解的困难度,数据越大安全系数越高。 给定了一个 32
位正整数,请对其进行因数分解, 找出哪两个素数的乘积。
输入
一个正整数 num
,满足 0 < num <= 2147483647
。
输出描述
如果成功找到,则以单个空格分割, 从小到大输出两个素数。 分解失败请输出 -1 -1
。
function resolve(num = 15) {
let res = [];
for (let i = 2; i < num; i++) {
if (num % i === 0) {
let temp = "";
if (isChu(i) && isChu(num / i)) {
if (i > num / i) {
temp = (num / i) + ";" + i;
} else {
temp = i + ";" + (num / i)
}
if (!res.includes(temp)) {
res.push(temp);
}
}
}
}
if (res.length > 0) {
console.log(res);
} else {
console.log("-1 -1");
}
}
function isChu(num) {
let flag = true;
for (let i = 2; i < num; i++) {
if (num % i === 0) {
flag = false;
break;
}
}
return flag;
}
resolve();