用c语言编写函数IsPrime,判断整数n是否为素数; 验证“歌德巴赫猜想:任意一个大于等于4的偶数可写成两个素数之和”。
时间: 2024-02-05 16:11:00 浏览: 75
以下是用C语言编写判断素数的函数IsPrime:
```
#include <stdio.h>
int IsPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
if (IsPrime(n)) {
printf("%d是素数\n", n);
} else {
printf("%d不是素数\n", n);
}
return 0;
}
```
验证“歌德巴赫猜想:任意一个大于等于4的偶数可写成两个素数之和”,可以按照以下步骤:
1. 输入一个大于等于4的偶数n;
2. 枚举所有小于n的素数p,判断n-p是否也是素数。如果找到了这样的一对素数,输出它们;
3. 如果没有找到这样的一对素数,说明歌德巴赫猜想不成立。
下面是实现代码:
```
#include <stdio.h>
int IsPrime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
printf("请输入一个大于等于4的偶数:");
scanf("%d", &n);
for (int p = 2; p <= n / 2; p++) {
if (IsPrime(p) && IsPrime(n - p)) {
printf("%d = %d + %d\n", n, p, n - p);
return 0;
}
}
printf("歌德巴赫猜想不成立\n");
return 0;
}
```
阅读全文