题解
2024-06-10 08:06:19
发布于:广东
8阅读
0回复
0点赞
直接模拟,用的时间复杂度来判断是否为质数
#include <iostream>
using namespace std;
bool prime(int a){
for(int i = 2; i * i <= a; i++){
if(a % i == 0) return 0;
}return 1;
}
int main(){
int n;
scanf("%d", &n);
if(n % 2 == 1){//奇数只有和2组合
if(prime(n - 2)) cout << 2 * n - 4;
else cout << -1;
}
else{
for(int i = n / 2; i >= 3; i -= 2){
if(i % 2 == 0) i--;
if(prime(i) && prime(n - i)){
cout << i * 1ll * (n - i);//注意开long long
break;
}
}
}
return 0;
}
这里空空如也
有帮助,赞一个