任意一個偶數(shù)(大于2)都可以由2個素數(shù)組成,組成偶數(shù)的2個素數(shù)有很多種情況,本題目要求輸出組成指定偶數(shù)的兩個素數(shù)差值最小的素數(shù)對 輸入描述: 輸入一個偶數(shù)
輸出描述: 輸出兩個素數(shù)
輸入例子: 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;}新聞熱點
疑難解答