題目描述:
任意一個偶數(大于2)都可以由2個素數組成,組成偶數的2個素數有很多種情況,本題目要求輸出組成指定偶數的兩個素數差值最小的素數對。
輸入描述:輸入一個偶數
輸出描述:輸出兩個素數
輸入例子:20
輸出例子:
7
13
算法實現:
#include<iostream>#include<vector>using namespace std;/************************************************ * Author: 趙志乾 * Date: 2017-2-18 * Declaration: All Rigths Reserved !!! ***********************************************/void SearchPRime(int data,vector<int>&ret);int main(){ int indata; cin>>indata; vector<int>prime; SearchPrime(indata,prime); int first=0,second=indata; int left=0,right=prime.size()-1; while(left<=right) { if(prime[left]+prime[right]<indata) left++; else if(prime[left]+prime[right]>indata) right--; else { first=prime[left++]; second=prime[right--]; } } cout<<first<<endl; cout<<second<<endl; return 0;}void SearchPrime(int data,vector<int>&ret){ for(int i=2;i<data;i++) { int j; for( j=2;j<i;j++) { if(i%j==0) break; } if(j==i) ret.push_back(i); }}
新聞熱點
疑難解答
圖片精選