百练_3143:验证“歌德巴赫猜想”

来源:互联网 发布:录像变脸软件是什么 编辑:程序博客网 时间:2024/05/22 17:37
描述
验证“歌德巴赫猜想”,即:任意一个大于等于6的偶数均可表示成两个素数之和。
输入
输入只有一个正整数x。(x<=2000)
输出
如果x不是“大于等于6的偶数”,则输出一行:
Error!
否则输出这个数的所有分解形式,形式为:
x=y+z
其中x为待验证的数,y和z满足y+z=x,而且y<=z,y和z均是素数。
如果存在多组分解形式,则按照y的升序输出所有的分解,每行一个分解表达式。

注意输出不要有多余的空格。
样例输入
输入样例1:7输入样例2:10输入样例3:100
样例输出
输出样例1:Error!输出样例2:10=3+710=5+5输出样例3:100=3+97100=11+89100=17+83100=29+71100=41+59100=47+53


#include <stdio.h>#include <math.h> int primenumber(int kk){     int i;     int k=(int)sqrt(kk);     for(i=2;i<=k;i++){        if(kk%i==0)           break;     }     if(i<=k){         return 0;     }else{         return 1;     } } int main() {     int x;     scanf("%d",&x);     for(int y=2;y<=x/2;y++){         if(x<6||x%2!=0){            printf("Error!\n");            break;         }         int z=x-y;         if(primenumber(y)&&primenumber(z)){             printf("%d=%d+%d\n",x,y,z);         }     }          return 0; }


原创粉丝点击