Re: [問題] 是否為質數的程式

看板C_and_CPP作者 (Range)時間13年前 (2012/04/07 06:01), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串2/2 (看更多)
for迴圈的版本 沒什麼優化 檢查2到input-1能不能整除input 然後用個變數isPrime記錄比較清楚 #include <stdio.h> int main() { int input; scanf("%d", &input); int isPrime = 1; for (int i = 2; i < input; i++) { if (input % i == 0) { isPrime = 0; break; } } if (isPrime == 1) { printf("%d 是質數", input); } else { printf("%d 不是質數", input); } return 0; } ※ 引述《josephtsung (jj)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : DEV C++ : 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) : 問題(Question): : 因為剛學C語言,只會用while、for、if這些簡單的語法, : 不知道這樣寫,這樣寫邏輯正確嗎? : 程式碼(Code):(請善用置底文網頁, 記得排版) : #include <stdio.h> : #include <stdlib.h> : int main(){ : int i=0,a=0; : scanf("%d",&i); : a=i-1; : while(i%a!=0){ : if(a>=2){ : a=a-1; : }else { : a==1; : break;} : } : if(a==1){ : printf("%d為質數\n",i); : } else{ : printf("%d不為質數\n",i); : } : system("pause"); : return 0; : } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.162.99.8

04/07 14:08, , 1F
檢查到sqrt(input)就好了~
04/07 14:08, 1F

04/07 14:17, , 2F
看來是真的要期中考了XD
04/07 14:17, 2F

04/07 15:47, , 3F
... int isPrime ...
04/07 15:47, 3F
文章代碼(AID): #1FVzWiC3 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1FVzWiC3 (C_and_CPP)