【题目描述】
哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。
【输入】
(无)
【输出】
分行输出:·
例如:
6=3+3
8=3+5
...
(每个数只拆开一次,请保证第一个加数最小)
【输入样例】
(无)
【输出样例】
(无)
【代码】
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int f(int x) //素数返回1 否则0
{
for(int i=2;i<x;i++)//2不入循环
{
if(x%i==0) // 若有有一个因子便不为素数
return 0;
}
return 1;
}
int main()
{
for(int i=6;i<=100;i+=2) //6到100 的偶数
{
for(int j=2;j<i;j++) //2到 数本身 找因子
{
if( f(j) && f(i-j) ) //遇到第一个 因子1为素数 数本身减去因子1 也为素数则输出 且结束循环
{
cout<<i<<"="<<j<<"+"<<i-j<<endl;
break;
}
}
}
}