证明哥德巴赫猜想
代码如下
#include
#include
using namespace std;
int main()
{
int gede(int s);
int a;
cout<<"请输入一个大于6的偶数:"<>a;
gede(a);
return 0;
}
int gede(int s)
{
int prime(int x);
int i,j;
for(i=2;ifor(j=2;jif(prime(i)&&prime(j))
if(s==i+j&&i<9)
cout<"="<"+"<int prime(int x) //判断是否为素数
{
int i,k=sqrt(x);
for(i=2;i<=k;i++)
if(x%i==0)break;
if(i>k)
return 1;
else
return 0;
}
在求判断是否为素数的函数中 为什么要判断i>k,i应该不可能大于k吧?
而且如果去掉这段代码,一样可以正常运行
if(i>k)
return 1;
else
return 0;
还有就是这个判断素数的方法原理是什么?
i>k表示上面的for循环全部执行结束了,循环结束条件就是 i>k
当i>k时,表明for循环执行过程中没有满足if条件的i值,没有break跳出循环,所以就说明2到k的所有值都不能整除x,所以x是素数,返回1。
如果循环中有数能够整除x,那么就会break跳出循环,此时i值肯定不大于k的,那么return 0