40 分拆素数和
作者: xxx时间限制: 1S章节: 函数
问题描述 :
把一个偶数拆成两个不同素数的和,有几种拆法呢?
说明:
比如10,可以拆成3+7和5+5以及7+3,
但是3+7与7+3相同,只算一种,5+5由于两个素数相同,不计算在内。
因此,10的拆法只有一种。
输入说明 :
首先输入一个T(不超过500),然后输入T个正的偶数,其值不会超过10000。
输出说明 :
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
输入范例 :
4
4
6
8
10
输出范例 :
0
0
1
1
#include <stdio.h>
int judge(int a)//判断是否为素数
{
if(a==1)
return 0;
for(int i=2;i*i<=a;i++)
{
if(a%i==0)
return 0;
}
return 1;
}
int main()//不要忘了return一个值
{
int n;
while(scanf("%d",&n) != EOF)
{
for(int j=0;j<n;j++)
{
int m,count=0;
scanf("%d",&m);
for(int k=2;k<=m/2-1;k++)
{
if( judge(k) && judge(m-k) )
count++;
}
printf("%d\n",count);
}
}
return 0;
}