**题目:**RSA加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的难度,数据越大,安全系数越高,给定一个32位整数,请对其进行因数分解,找出是哪两个素数的乘积。
#include<iostream>
using namespace std;
bool isPrime(int s) {
if (s <= 1) return false;
for (int i = 2; i <= sqrt(s); i++) {
if (s % i == 0) return false;
}
return true;
}
int main() {
int num; // 输入的32位有符号整数
int a = -1, b = -1;
cin >> num;
for (int i = 2; i <= sqrt(num); i++) {
if (isPrime(i)) { // 先判断第一个因子是否为素数
if (num % i == 0) { // 判断能否除尽
if (isPrime(num / i)) {
a = i;
b = num / i;
}
else {
continue;
}
}
else {
continue;
}
}
else {
continue;
}
}
cout << a << " " << b << endl;
}