bool isprime(int num) {
if (num<=1) {
return false;
}
for (int i = 2;i<=(int)sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
void ret(int n) {
for (int i = 2; i <= n / 2; i++) {
int j = n - i;
if (isprime(i) && isprime(j)) {
printf("%d=%d+%d\n", n, i, j);
}
}
}
int main() {
int n = 0;
scanf("%d",&n);
ret(n);
return 0;
}
for (i = 2; i <= n / 2; ++i) {
if (checkPrime(i) && checkPrime(n - i)) {
printf("%d = %d + %d\n", n, i, n - i);//n+i-i 必等于n
flag = 1;
}
}
if (!flag) {
printf("%d 不能分解为两个素数。\n", n);
}
return 0;
}
int checkPrime(int n) {
if (n <= 1) return 0;
int limit = (int)sqrt(n);
for (int i = 2; i <= limit; ++i) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
*/
登录后提交答案