判斷一個整數是否為兩個素數之和怎么在vc中設計函式實作
uj5u.com熱心網友回復:
遍歷素數表。uj5u.com熱心網友回復:
哥德巴赫猜想?
第一步:判斷這個數是不是偶數是不是大于2,兩個條件符合進入第二步,否則不符合。
第二步:列出小于這個數的所有素數,排列組合相加,和數本身對比,如果有相等的,符合。如果加完都沒有相等的則不符合。
uj5u.com熱心網友回復:
供參考:#include<stdio.h>
int isPrime(int n)
{
int i;
if(n<=3) return n>1;
for(i=2;i*i<=n;i++)
if(n%i==0) return 0;
return 1;
}
int main()
{
int n,i,cnt=0;
char again='n';
do{
printf("輸入一個數:");
scanf("%d",&n);
cnt=0;
for(i=1;i<n;i++){
if(isPrime(i) && isPrime(n-i)){
printf("%d=%d+%d\n",n,i,n-i);
cnt++;
}
}
if(cnt==0)printf("%d不能分解成兩個質數之和。\n",n);
printf("繼續[Y(y)/N(n)]?:");
rewind(stdin);
scanf("%c",&again);
}while((again=='Y') || (again=='y'));
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/280746.html
標籤:C++ 語言
下一篇:撰寫程式實作工人工資的計算
