任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对 输入描述: 输入一个偶数
输出描述: 输出两个素数
输入例子: 20
输出例子: 7 13
解析:#include <iostream>#include <vector>#include <cmath>#include <set>using namespace std;bool judge(int n){ int i; for(i=2;i<sqrt(n*1.0)+1;++i) { if(n%i==0) return false; } return true;}int main(){ int n,i,j; while(cin>>n) { vector<int>p; vector<int>s; int idx; if(n<=5||n>1000) { continue; } for(i=2;i<n;++i) { if(judge(i)) { p.push_back(i); } } for(i=0;i<p.size();++i) { for(j=0;j<p.size();++j) { if(p[i]+p[j]==n&&p[i]!=p[j]) { s.push_back(p[i]); s.push_back(p[j]); } } } int min = p.size(); for(i=0;i<s.size();i+=2) { // int idx; if(fabs(s[i+1]-s[i]*1.0)<min) { min = fabs(s[i+1]-s[i]*1.0); idx = i; } } cout<<s[idx]<<endl; cout<<s[idx+1]<<endl; } return 0;}新闻热点
疑难解答