C 判斷奇偶數與質數
程式碼 source code download
解題一
設想兩數所有的可能情況,a>b、B>a、a=b
解題二
當個情況中,判斷奇偶數
判斷方法,% 取餘數是否為零,做 true false 判斷
解題三
當是奇數時候,需判斷是否為質數
這邊大家問題都會想很深,甚至開根號處理,用最簡單的方式
只要設定兩變數,一個假設為 i,另一個為奇數
當奇數減一,且可以被餘數 i 整除為零,再做一次 true false 判斷
即可取出奇數是否為質數,無公因數的數字就是為質數
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
int main(void) {
int a,b,i,t;
printf("a => ");
scanf("%d", &a);
printf("b => ");
scanf("%d", &b);
//if a>b
if(a>b){
printf("%d>%d\n", a,b);
if((a%2)==0)
printf("%d 偶數\n", a);
else
if (a==1)
a=0;
else if(a==0)
t=1;
else{
for(i=a-1; i>1; i=i-1){
if(a%i==0){
t=0;
break;
}
}
if(t)
printf("%d 奇數是質數\n",a);
else
printf("%d 奇數不是質數\n",a);
}
if((b%2) ==0)
printf("%d 偶數\n", b);
else
if (b==1)
t=0;
else if(b==0)
t=1;
else{
for(i=b-1; i>1; i=i-1){
if(b%i==0){
t=0;
break;
}
}
if(t)
printf("%d 奇數是質數\n",b);
else
printf("%d 奇數不是質數\n",b);
}
//if b > a
}else if(b>a){
printf("%d>%d\n", b,a);
if((a%2)==0)
printf("%d 偶數\n", a);
else
if (a==1)
t=0;
else if(a==0)
t=1;
else{
for(i=a-1; i>1; i=i-1){
if(a%i==0){
t=0;
break;
}
}
if(t)
printf("%d 奇數是質數\n",a);
else
printf("%d 奇數不是質數\n",a);
}
if((b%2) ==0)
printf("%d 偶數\n", b);
else
if (b==1)
t=0;
else if(b==0)
t=1;
else{
for(i=b-1; i>1; i=i-1){
if(b%i==0){
t=0;
break;
}
}
if(t)
printf("%d 奇數是質數\n",b);
else
printf("%d 奇數不是質數\n",b);
}
// if a = b
}else if(a=b){
printf("%d=%d\n", a,b);
if((a%2)==0)
printf("%d 偶數\n", a);
else
if (a==1)
t=0;
else if(a==0)
t=1;
else{
for(i=a-1; i>1; i=i-1){
if(a%i==0){
t=0;
break;
}
}
if(t)
printf("%d 奇數是質數\n",a);
else
printf("%d 奇數不是質數\n",a);
}
if((b%2) ==0)
printf("%d 偶數\n", b);
else
if (b==1)
t=0;
else if(b==0)
t=1;
else{
for(i=b-1; i>1; i=i-1){
if(b%i==0){
t=0;
break;
}
}
if(t)
printf("%d 奇數是質數\n",b);
else
printf("%d 奇數不是質數\n",b);
}
}
system("PAUSE");
return 0;
}
質數解法以上為比較直覺的作法,也有另一個走法 #include "math.h" 函數後,用 sqrt() library 處理

0 意見:
張貼留言