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 意見:
張貼留言