描述已知正整数n是两个不同的质数的乘积试求出较大的那个质数。输入描述输入只有一行包含一个正整数 n。对于60的数据6≤n≤1000。对于100的数据6≤n≤2×10 9 。输出描述输出只有一行包含一个正整数 p即较大的那个质数。希望能用c++编写代码不要讲解。输入:21输出:7
#include
// 判断一个数是否是质数 bool isPrime(int n) { if (n < 2) { return false; } for (int i = 2; i * i <= n; i++) { if (n % i == 0) { return false; } } return true; }
int main() { int n; cin >> n;
int p;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0 && isPrime(i) && isPrime(n / i)) {
p = max(i, n / i);
}
}
cout << p << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/jcvx 著作权归作者所有。请勿转载和采集!