题目描述:
任意一个偶数(大于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); }}
新闻热点
疑难解答
图片精选