描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
本题含有多组样例输入。
输入描述:
输入一个偶数
输出描述:
输出两个素数
示例1
输入:
20
输出:
7
13
注意1不是素数。
#include <stdio.h>
int abs_minus(int a, int b)
{
if(a > b)
{
return (a-b);
}
else
{
return (b-a);
}
}
int judge(int num)
{
int i;
if(num < 2)
{
return 0;
}
for(i=2; i<num; i++)
{
if(num%i == 0)
{
return 0;
}
}
return 1;
}
int main(int argc, char **argv)
{
int num;
int i;
int min;
int a, b;
while(scanf("%d", &num) != EOF)
{
min = num;
for(i=2; i<num-1; i++)
{
if(judge(i)==1 && judge(num-i)==1)
{
if(min > abs_minus(i, num-i))
{
min = abs_minus(i, num-i);
a = i;
b = num-i;
}
}
}
if(a > b)
{
printf("%d\n%d\n", b, a);
}
else
{
printf("%d\n%d\n", a, b);
}
}
return 0;
}