望远
/********************************
****背景:任意一个大于等于4的偶数都能表示成两个素数之和
********************************/
#include<stdio.h>
#include<math.h>
int isPrime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
return 0;
}
if(n==1)
return 0;
return 1;
}
void main()
{
int i,n,count;
do{
printf("请输入一个大于等于4的偶数:");
scanf("%d",&n);
if(n<4||n%2!=0)
{
printf("数据错误请重新输入!!\n");
}
}while(n<4||n%2!=0);
for(i=2,count=0;i<=n/2;i++)
{
if(isPrime(i)&&isPrime(n-i))
{
printf("%d =%d +%d\n",n,i,n-i);
count++;
}
}
printf("一共有%d种情况\n",count);
}