#include<stdio.h>
#include<stdlib.h>
int main()
{int n, p, q;          //n 是偶数,并将它分成 p,qint flagp, flagq, j;  //p,q 为素数时,flag = 1; j在循环时使用 p = 1;                //之所以不让 p = 0;是因为 1 不是素数,编程完毕之后可以比较一下两者的区别//输入一个偶数 nprintf("请输入一个偶数:");      //提示输入scanf("%d", &n);               //输入 n//判断 n 是否为偶数,且大于3if (n<4 || n%2!=0)                  //或者n % 2 == 1; 但不要写成赋值 = {printf("Input data error!\n");  //提示输入错误 exit(-1);                       //程序结束。添加 #include<stdlib.h> } //判断 p,q 是否是素数 do{p++;                           //此时 p 从 2 开始循环q = n-p;flagp = 1;                   //假设 p 是素数 //判断 p 是否为素数for (j=2; j <= sqrt(p); j++)    //sqrt();函数是求一个数的平方根,添加 #include<math.h>{if(0 == p % j)           //素数的因数只有 1 和它本身 {flagp = 0;           //不是素数,改变 flagp 的值  break;               //退出 for 循环 }    }flagq = 1;//判断 q 是否为素数for (j=2; j <= sqrt(q); j++)     {if(0 == q % j)     /*不写成 q % j == 0; 是因为 0 == q % j 中,如果 == 写成 = ,会变成bug,可以报错*/{flagq = 0;break;}   }} while(flagq * flagp == 0);   //首先 flag = 1,否则 do while 循环无法结束 //输出 n, p. qprintf("   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<stdio.h>
#include<math.h>
#include<stdlib.h>
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<2){j++;if(j>2) {printf("输入错误超过上限,程序结束!\n");exit(-1);}printf("Input data error!\n");printf("Input another integer:");scanf("%d", &n);} //判断 n 是否为素数flag = 1;for (i=2; i <= sqrt(n); i++) {if(0 == n % i){printf("This is not prime.\n");flag = 0;break;}}if (flag == 1)printf("This is prime.\n");return 0;
}

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

  1. 验证哥德巴赫猜想:任何一个大于等于6的偶数均可表示为两个素数的和。如6=3+3,8=3+5,,18=5+13。试编写程序,要求将输入的一个偶数表示成两个素数之和。 输入输出样例如下:

    验证哥德巴赫猜想:任何一个大于等于6的偶数均可表示为两个素数的和.如6=3+3,8=3+5,,18=5+13.试编写程序,要求将输入的一个偶数表示成两个素数之和. 输入输出样例如下: 98 98 = ...

  2. [C]验证哥德巴赫猜想(输入一个偶数始终等于两个素数之和,附个人编写的代码)

    验证哥德巴赫猜想 思路 注意 C语言代码实现 思路 问题是:任意输入一个偶数,始终找到两个和为该偶数的素数. 我们要解决的问题是,通过算法来找到符合的两个素数. 我们拆分一下该问题要解决的事情: ** ...

  3. Java用(函数)方法验证哥德巴赫猜想(Goldbach)(一个偶数一定等于两个素数之和)本题以100以内的偶数为例

    public class function2 { //记得修改文件名或类名public static void main(String[] args) {// TODO Auto-generated ...

  4. python偶数分解成两个素数之和_偶数 2021218918 ,有多少种方法分解成两个素数之和?...

    对于上面问题2N=2021218918,满足"p+q=2N"的素数对(p,q)的个数真值为3289208个.下面对这个值进行理论探求分析,请大家不吝赐教! 下面先来进行基于小素数因 ...

  5. PHP验证歌德巴赫猜想:一个充分大的偶数(大于或等于6)可以分解为两个素数之和。编写程序,将6至50之间全部偶数表示为两个素数之和。

  6. 【算法】验证哥德巴赫猜想

    问题来源 Timus Online Judge 网站上有这么一道题目:1356. Something Easier.这道题目的输入是一组  2 到 109 之间整数,对于每个输入的整数,要求用最少个数 ...

  7. (c语言)使用函数验证哥德巴赫猜想

    题目描述 本题要求实现一个判断素数的简单函数,并利用该函数验证哥德巴赫猜想:任何一个不小于6的偶数均可表示为两个奇素数之和.素数就是只能被1和自身整除的正整数. 输入两个正整数m和n(0<=m& ...

  8. c语言表示哥德巴赫猜想,用C语言来验证哥德巴赫猜想(定义的是int型)

    哥德巴赫猜想: 如果任意一个大于6的偶数都可以写成两个素数之和.就将其称为符合哥德巴赫猜想. #include #include /// /// 判断一个数是否是素数 /// /// 要判断的数 // ...

  9. c语言一个偶数用两个素数表示,用java怎样编写一个偶数总能表示为两个素数之和的程序...

    我这有一个程序,是验证6到1000内所有数都可以用两个素数之和表示,不过程序是用c语言写的,java我们还没学呢,不知道这程序对你是否有用,你自己先看看吧#include<stdio.h> ...

  10. 将一段区间的偶数分解为两个素数相加(Java)

    从键盘接收任意两个正整数,要求第一个正整数必须小于第二个正整数.然后把这两个数范围之内(包括这两个数)的所有偶数分解为两个素数之和,并输出每个偶数以及对应的两个素数 方法一 package day05 ...

最新文章

  1. she's the one
  2. RIP(Routing Information Protocol)精析04
  3. python中打印zip()函数结果和zip()函数的使用
  4. c++ 继承机制易犯的错误
  5. Mercurial黄昏,Bitbucket宣布全面转向Git
  6. Java9都快发布了,Java8的十大新特性你了解多少呢?
  7. 计算机英语audios啥意思,2020考研英语词汇:audio是什么意思
  8. java生成pdf417_生成PDF417的JAVA包.rar
  9. Linux中安装开源JDK(windows的JDK只能安装半开源)
  10. objective-c block 讲解
  11. vector java 复制_Java代码性能优化的 40+ 细节
  12. OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解
  13. wait放弃对象锁_Java线程:notify()和wait()示例
  14. 如何使用JavaScript来判断用户设备类型
  15. 优秀开源音乐项目---落雪音乐软件(免费听歌下载歌曲)
  16. plotly绘制3D图技巧
  17. python分离arw与jpg图片
  18. tf.contrib
  19. php 解析pathinfo 类
  20. 2021年中国柠檬茶行业发展概况及行业发展趋势分析[图]

热门文章

  1. HTTP状态码(查询专用)
  2. Windows Server 2019存储池配置
  3. ActiveMQ(二)
  4. 智和信通搭建高可靠、真稳定IT运维平台,助力能源行业高效生产
  5. Android OkHttp 全面详解
  6. 从X Fold+折叠屏手机再议vivo的用户导向创新思维
  7. RabbitMQ ACK消息确认机制 快速入门
  8. 我们的管理:创新产品研发管理
  9. 新版盲盒商城V4.0完整系统源码+亲测可用
  10. 极客日报:腾讯视频、优酷、爱奇艺取消超前点播;苹果为小学生推出编程指南;Win11会导致游戏性能下降