查找组成一个偶数最接近的两个素数
题目描述
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
输入描述
输入一个偶数
输出描述
输出两个素数
输入样例
20
输出样例
7 13
题目分析
首先输入的肯定是偶数,从中间开始找的话就是保证两个数差距最小,然后再分别判断两个数是不是质数,就可以了
测试代码
1 #include <stdio.h> 2 3 int isPrime(int num) 4 { 5 int i; 6 if(num ==2) 7 { 8 return 1; 9 } 10 if(!(num & 1) || num < 2) 11 { 12 return 0; 13 } 14 for(i =3; i * i <= num; i += 2) 15 { 16 if(num % i == 0) 17 { 18 return 0; 19 } 20 } 21 return 1; 22 } 23 24 int main(void) 25 { 26 int num, i; 27 28 while(scanf("%d", &num) != EOF) 29 { 30 for (i = num / 2; i; i--) 31 { 32 if (isPrime(i) && isPrime(num - i)) 33 { 34 printf("%d\n%d\n", i, num - i); 35 break; 36 } 37 } 38 } 39 return 0; 40 }

浙公网安备 33010602011771号