题目:输入一个大于2的偶数N,将N分解为两个素数之和。
#include <stdio.h>
/*子算法,判断整数n是否是素数,是素数则返回1,不是则返回0*/
int isPrime(int n)
{
int i;
for(i=2;i<n;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
/*求解符合题目要求的素数对,并将其输出到屏幕上*/
int getPrimePair(int n)
{
int i;
if(n%2 != 0 && n<=2) {
return 0; /*如果n不是大于2的偶数,返回0表示失败*/
}
for(i=2;i<=n/2;i++) {
if(isPrime(i) && isPrime(n-i)) {
printf("%d + %d = %d\n",i,n-i,n);
}
}
return 1; /*返回1表示成功*/
}
main()
{
int N;
printf("Please input even number N\n");
scanf("%d",&N);
getPrimePair(N);
getchar();
getchar();
}