”巴德赫尔猜想“是任一大于2的偶数都可以写成两个素数之和。
我们先理一理思路,就是一个偶数要分解成两个素数的和,只要保证这两个数都是素数相加等于那个偶数就好。
怎么保证他是素数呢?素数是他的公因数只有1和他本身,所以我们可以让这个数去除以比1大的数取余,余数不为0即可,并且保证每个比他小数都被除过。
要是一个程序里写两个判断素数的程序的话,繁琐还不美观,所以可以设计一个子函数,用函数调用的方式去搞定。
这个样子就可以啦!
#include#include //要用到根号,因为只要除去比他的平方根小的数就行。 int isprime(int n)//调用函数,判断其是不是素数。 { int i,m; if (n==1) return 0;//肯定为素数 m=sqrt(n); for (i=2;i<=m;i++) if(n%i==0) return 0; return 1;//0和1是用来返回主函数,判断其是不是素数。 } int main()//主函数 { int p,N; scanf("%d",&N); if (N>2&&N<=2000000000&&N%2==0)//可以不加这个,这是对输入数字的限定。 for(p=2;p



