哥德巴赫猜想

題目詳情:

著名的哥德巴赫猜想是說:任一大於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 //提示:自動閱卷結束唯一標識,請勿刪除或增加。
很奇怪
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章