首页 > 编程 > C++ > 正文

[华为OJ--C++]051-查找组成一个偶数最接近的两个素数

2019-11-08 03:00:29
字体:
来源:转载
供稿:网友

题目描述:

任意一个偶数(大于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);	}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选