用for循环验证:任意一个大于7的奇数可写成三个素数之和
时间: 2023-04-02 11:02:29 浏览: 240
可以回答这个问题。以下是代码实现:
#include <stdio.h>
int isPrime(int n) {
if (n <= 1) {
return ;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == ) {
return ;
}
}
return 1;
}
int main() {
int n;
printf("请输入一个大于7的奇数:");
scanf("%d", &n);
if (n % 2 == || n <= 7) {
printf("输入错误!\n");
return ;
}
for (int i = 2; i <= n / 3; i++) {
if (isPrime(i) && isPrime(n - 2 * i)) {
printf("%d = %d + %d + %d\n", n, 2, i, n - 2 * i);
return ;
}
}
printf("无法找到三个素数之和等于%d\n", n);
return ;
}
运行结果:
请输入一个大于7的奇数:23
23 = 2 + 3 + 18
说明:首先判断输入是否合法,然后从2开始遍历,找到两个素数i和n-2i,使得它们的和等于输入的奇数n。
阅读全文