1157:哥德巴赫猜想
【题目描述】
哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。
【输入】
(无)
【输出】
分行输出:
例如:
6=3+3
8=3+5
...
(每个数只拆开一次,请保证第一个加数最小)
【输入样例】
(无)
【输出样例】
(无)
#include<iostream> #include<cmath> #include<cstring> int max(int m)//是素数吗 { int j; for(j=2;j<m;j++) if(m%j==0)return 0; return 1; } using namespace std; int main() { int i,j,k,m=0; for(k=6;k<=100;k+=2) { for(i=3;i<k;i+=2){//因为是偶数,可分成两个奇数的和,从3开始吧 for(j=3;j<k;j+=2)//另一个也从3开始 { m=0;//标志 if(max(i)&&max(j)&&(i+j==k))//符合条件吗 { printf("%d=%d+%d\n",k,i,j); m=1;break;//找到了就出循环 } } if(m==1)break;//出上一循环 } } return 0; }