P1304 哥德巴赫猜想(洛谷题面)
题目
题目描述:
输入一个偶数 N,验证 4∼N 所有偶数是否符合哥德巴赫猜想:任一大于 2 的偶数都可写成两个质数之和。如果一个数不止一种分法,则输出第一个加数相比其他分法最小的方案。例如 10,10=3+7=5+5,则 10=5+5 是错误答案。
输入格式:
第一行输入一个正偶数 N
输出格式:
输出 2N−2 行。对于第 i 行:
首先先输出正偶数 2i+2,然后输出等号,再输出加和为 2i+2 且第一个加数最小的两个质数,以加号隔开。
数据范围与说明:
数据保证,。
输入输出样例 #1
输入:
输出:
1 2 3 4
| 4=2+2 6=3+3 8=3+5 10=3+7
|
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #include<bits/stdc++.h> using namespace std; bool prime(int x){ if(x<=1) return false; for(int i=2;i<=sqrt(x);i++){ if(x%i==0) return false; } return true; } int main(){ int n; cin>>n; for(int i=4;i<=n;i+=2){ for(int j=2;j<i;j++){ if(prime(j)&&prime(i-j)){ cout<<i<<"="<<j<<"+"<<i-j<<endl; break; } } } return 0; }
|