題目詳情:
著名的哥德巴赫猜想是說:任一大於2的偶數,都可表示成兩個質數之和(質數,又稱素數,指在大於1的自然數中,除了1和此整數自身外,無法被其他自然數整除的數)。
現在給定一個大於等於4的偶數,請輸出它能表示成多少種兩個質數的和。
輸入:偶數n (4<=n<=32766)。
輸出:請輸出它能表示成多少種兩個質數的和。例如10=3+7=5+5,所以輸入10的話答案是2。
答題說明:
main函數可不用完成。
#include<stdio.h>
int prime(int m)
{
int i;
int k=(int)sqrt((double)m);
for(i=2;i<=k;i++)
if(m%i==0) break;
if(i>k) return 1;
else return 0;
}
int howmany (int n)
{
int a,b;
int count=0;
for(a=3;a<=n/2;a=a+2)
{
if(prime(a))
{
b=n-a;
if(prime(b))
{
count++;
//cout<<n<<"="<<a<<"+"<<b<<endl;
}
}
}
return count;
}
//start 提示:自動閱卷起始唯一標識,請勿刪除或增加。
int main()
{
printf("%d",howmany(20));
}
//end //提示:自動閱卷結束唯一標識,請勿刪除或增加。
很奇怪