算法之每日一题:哥德巴赫猜想

来源:互联网 发布:淘宝号可以改名字吗 编辑:程序博客网 时间:2024/05/19 16:51
#include<stdio.h>#include<math.h>//是否是素数int is(int x){int k=sqrt((float)x);int i;for(i=2;i<=k;i++)if(x%i==0)break;if(x==1)return 0;else if(x==2||x==3||i>k)return 1;elsereturn 0;}//时间复杂度:O(nloglogn)//空间复杂度:O(n)//即任一大于2的偶数都可写成两个素数之和,亦称为“强哥德巴赫猜想”或“关于偶数的哥德巴赫猜想”。int main(){int i,j,k,x;while(scanf("%d",&x)!=EOF,x){if(x%2!=0){printf("%d不是偶数\n",x);}if(is(x-2)){printf("2 %d\n",x-2);continue;}for(i=3;i<=x/2;i+=2){if(is(i)&&is(x-i)){printf("%d %d\n",i,x-i);break;}}}return 0;}

0 0
原创粉丝点击