1. 程式人生 > >1968: C/C++經典程序訓練6---歌德巴赫猜想的證明

1968: C/C++經典程序訓練6---歌德巴赫猜想的證明

scanf 單獨 main return bbs spa pid ret pro

1968: C/C++經典程序訓練6---歌德巴赫猜想的證明

Time Limit: 1 Sec Memory Limit: 64 MB
Submit: 1165 Solved: 499
[Submit][Status][Web Board]

Description

寫一個函數gotbaha, 驗證“每個不小於6的偶數都是兩個奇素數之和”,輸入一個不小於6的偶數n,找出兩個素數,使它們的和為n。

Input

輸入一個不小於6的偶數n

Output

找出兩個為素數,使它們的和為n。

Sample Input

80

Sample Output

80=7+73

HINT

主函數已給定如下,提交時不需要包含下述主函數


/* C代碼 */


int main()


{


int n;


int gotbaha(int);


int prime(int);


scanf("%d",&n);


gotbaha(n);


return 0;


}



/* C++代碼 */


int main()


{


int n;


int gotbaha(int);


int prime(int);


cin>>n;


gotbaha(n);


return 0;


}

#include<stdio.h>
#include<math.h>
int prime(int n)
{
    int k,i;
    k=sqrt(n);
    for(i=2;i<=k;i++)
        if(n%i==0)
            break;
    if(i==k+1)
        return 1;
    else
        return 0;
}
int gotbaha(int n)
{
    int prime(int n);
    int a,b;
    for(a=7;a<n;a++)
    {
        b=n-a;//設置b=n-a將b用a表示,這樣對範圍內的b不再逐一驗證,不用再單獨為b設置循環,循環次數下降//
        if(prime(a)&&prime(b))
        {
            printf("%d=%d+%d",n,a,b);
            break;
        }
    }
}
int main()


{


    int n;


    int gotbaha(int);


    int prime(int);


    scanf("%d",&n);


    gotbaha(n);


    return 0;


}

  

1968: C/C++經典程序訓練6---歌德巴赫猜想的證明