题目简介:
将一个偶数(>0)分拆为两个素数和,能有多少种方法
思路:
写一个判断是否为素数的函数
用 for循环 从 2 --- n/2 来判断组成n的两个数是否为素数 (切记不要循环到n, 否则会有重复解)
代码:
#include <stdio.h>
#include <math.h>
bool su (int n)
{
int i;
for(i = 2; i <= sqrt(n); i++)
{
if(n % i ==0)
return 0;
}
return 1;
}
int main()
{
int n;
int i;
int sum;
while(~scanf("%d",&n))
{
if(n == 0)
break;
sum = 0;
for(i = 2; i < n/2; i++)
{
if(su(i) && su(n-i))
sum++;
}
printf("%d\n",sum);
}
}