#include<stdio.h>
#include<math.h>
/*
哥德巴赫猜想的局部证明(1-1000000已证)
*/
/*函数声明*/
int testifyGB_Guess(int low ,int high);
int isGoldbach(int n);
int isPrime(int n);
/*证明low——high是否符合*/
int testifyGB_Guess(int low ,int high){
int i,j=0,flag=0;
for(i=low;i<=high;i++){
if(i%2==0 && i>2){
if(isGoldbach(i)){
j++;
if(j==5){
printf("\n");
j=0;
}
}
else{
flag=1;
break;
}
}
}
if(flag==0)
return 1;
else
return 0;
}
/*判断n是否符合哥德巴赫猜想*/
int isGoldbach(int n){
int i,flag=0;
for(i=1;i<=n/2;i++){
if(isPrime(i) && isPrime(n-i)){
flag=1;
printf("%d = %d + %d ",n,i,n-i);
break;
}
}
if(flag==1)
return 1;
else
return 0;
}
/*判断n是否是素数*/
int isPrime(int n){
int i,flag=1;
for(i=2;i<sqrt((double)n);i++){
if(n%i==0){
flag=0;
break;
}
}
if(flag==1)
return 1;
else
return 0;
}
int main()
{
int low,high;
printf("input range(e.g.1 100)\n");
scanf("%d %d",&low,&high);
if(testifyGB_Guess(low,high))
printf("\nright!\n");
else
printf("\nwrong!\n");
}
局部证明哥德巴赫猜想
最新推荐文章于 2024-05-31 08:28:34 发布