C 練習實例84
題目:一個偶數總能表示為兩個素數之和。
程式分析:我去,這是什麼題目,要我證明這個問題嗎?真不知道怎麼證明。那就把一個偶數分解成兩個素數吧。
實例
// Created by www.xuhuhu.com on 15/11/9.
//
//
#include<stdio.h>
#include<stdlib.h>
int Isprimer(unsigned int n);
int main()
{
unsigned int n,i;
do{
printf("請輸入一個偶數:\n");
scanf("%d",&n);
}while(n%2!=0);
for(i=1;i<n;i++)
if(Isprimer(i)&&Isprimer(n-i))
break;
printf("偶數%d可以分解成%d和%d兩個素數的和\n",n,i,n-i);
return 0;
}
int Isprimer(unsigned int n)
{
int i;
if(n<4)return 1;
else if(n%2==0)return 0;
else
for(i=3;i<sqrt(n)+1;i++)
if(n%i==0)return 0;
return 1;
}
以上實例運行輸出結果為:
請輸入一個偶數: 4 偶數4可以分解成1和3兩個素數的和