用C语言写一个证明哥德巴赫猜想
哥德巴赫猜想是指任何一个大于2的偶数都可以表示成两个质数之和的形式。下面是用C语言写的一个证明哥德巴赫猜想的程序:
#include <stdio.h> #include <stdlib.h> #include <math.h>
int isPrime(int n) { // 判断一个数是否是质数 int i; for (i = 2; i <= sqrt(n); i++) { if (n % i == 0) { return 0; } } return 1; }
int main() { int n, i, j, flag; printf("请输入一个大于2的偶数:"); scanf("%d", &n); if (n % 2 != 0 || n < 4) { // 判断输入是否合法 printf("输入错误!\n"); exit(1); } for (i = 2; i <= n/2; i++) { // 遍历所有可能的质数 if (isPrime(i) == 1) { j = n - i; if (isPrime(j) == 1) { // 如果找到两个质数使它们的和等于n,则输出结果并退出程序 printf("%d = %d + %d\n", n, i, j); flag = 1; break; } } } if (flag == 0) { // 如果遍历完所有可能的质数都没有找到符合条件的两个质数,则输出错误信息 printf("哥德巴赫猜想不成立!\n"); } return 0; }
这个程序的思路很简单,就是从2开始遍历所有可能的质数,然后判断它们和n-i是否也是质数,如果是,则输出结果并退出程序。如果遍历完所有可能的质数都没有找到符合条件的两个质数,则输出错误信息。由于哥德巴赫猜想已经被证明是正确的,因此这个程序一定会输出一个符合要求的结果。
原文地址: https://www.cveoy.top/t/topic/br0h 著作权归作者所有。请勿转载和采集!