验证哥德巴赫猜想:任一充分大的偶数,可以用两个素数之和表示。

您所在的位置:网站首页 哥德巴赫猜想内容举例说明 验证哥德巴赫猜想:任一充分大的偶数,可以用两个素数之和表示。

验证哥德巴赫猜想:任一充分大的偶数,可以用两个素数之和表示。

2023-08-16 00:53| 来源: 网络整理| 查看: 265

#include #include int main() { int n, p, q; //n 是偶数,并将它分成 p,q int flagp, flagq, j; //p,q 为素数时,flag = 1; j在循环时使用 p = 1; //之所以不让 p = 0;是因为 1 不是素数,编程完毕之后可以比较一下两者的区别 //输入一个偶数 n printf("请输入一个偶数:"); //提示输入 scanf("%d", &n); //输入 n //判断 n 是否为偶数,且大于3 if (n p++; //此时 p 从 2 开始循环 q = n-p; flagp = 1; //假设 p 是素数 //判断 p 是否为素数 for (j=2; j flagp = 0; //不是素数,改变 flagp 的值 break; //退出 for 循环 } } flagq = 1; //判断 q 是否为素数 for (j=2; j flagq = 0; break; } } } while(flagq * flagp == 0); //首先 flag = 1,否则 do while 循环无法结束 //输出 n, p. q printf(" n = p + q\n"); printf("%4d =%4d +%4d\n", n, p, q); return 0; } 下面进行编程时的错误总结:

(1)一开始令 flagq 和 flagq 等于0,然后 q,p 不为素数时,flag = 1; 因为while(flagq * flagp == 0);所以如果两个数为素数,循环还会继续,无法退出循环。 正确的写法:先 flag = 1; 若不是素数,则 flag = 0;只要 p,q 中有一个不是素数,则循环继续。

(2)一开始令 p = 0; 那么输入 8,会得到 8 = 1 + 7,然而 1 不是质数(素数)。 质数的定义:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。 正确的写法:p = 1;

判断素数的代码 #include #include #include int main() { int i, n; // i 为循环所用, n 为一个数 int flag, j; //flag 判断是否为素数 , j 为输入 n 的次数 printf("Input an integer:"); //提示输入 n scanf("%d", &n); //输入 n // n 要大于 1,且如果输错 3次以上,程序结束 j = 0; while (n printf("输入错误超过上限,程序结束!\n"); exit(-1); } printf("Input data error!\n"); printf("Input another integer:"); scanf("%d", &n); } //判断 n 是否为素数 flag = 1; for (i=2; i printf("This is not prime.\n"); flag = 0; break; } } if (flag == 1) printf("This is prime.\n"); return 0; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3