问题描述:任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对 请实现如下接口
public static class PrimePair
{
public int primeMin;
public int primeMax;
}
public static PrimePair findPrimeNumber(int number)
{
/* 请实现 */
return null;
}
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;
}