#include using namespace std; //判断一个数是不是质数 bool isPrime(int n) { if (n < 2) return false; for (int i = 2; i <= n / i; i++) if (n % i == 0) return false; return true; } int main() { int n; cin >> n; for (int i = 2; i <= n / i; i++) //怕溢出 i=2147383647 i*i<=n // i*i<=n => i<= n/i 解决了溢出的问题 if (n % i == 0 && isPrime(i) && isPrime(n / i)) { cout << n / i << endl; //大因子是 b=n/i break; } return 0; }