您的位置:首页 > 其它

【华为oj】查找组成一个偶数最接近的两个素数

2015-06-27 17:24 363 查看
问题描述:任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对 请实现如下接口

public static class PrimePair

{

public int primeMin;

public int primeMax;

}

public static PrimePair findPrimeNumber(int number)

{

/* 请实现 */





return null;

}



譬如:

输入20

输出

7

13

问题分析:素数就是质数,其判断用自定义函数isprime()实现

代码

#include <iostream>
#include <math.h>
using namespace std;

bool isprime(int n);

int main()
{
	int n;
	cin>>n;

	int a,b;
	int mind=INT_MAX;
	int i=0;
	for(i=0;i<n/2+2;++i)
	{
		if(isprime(i)&&isprime(n-i))
		{
			if(mind>n-2*i)
			{
				mind=n-2*i;
				a=i;
				b=n-i;
			}
		}
	}
	cout<<a<<endl;
	cout<<b<<endl;
	return 0;
}
bool isprime(int n)
{
	int i,c=0;
	for(i=1;i<n/2+2;++i)
	{
		if(n%i==0)
			++c;
	}
	if(c==1)
		return true;
	else
		return false;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: