[問題] 新手問質數問題

看板C_and_CPP (C/C++)作者 (萌塔愛麗絲)時間16年前 (2009/09/14 01:48), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/3 (看更多)
以下是C語言教學手冊某一題的解答 內容是找出小於所輸入數字的最大質數 但是我發現輸入某些數 印出來的卻不是質數 ex:輸入28,印出來25 除此之外還有其他數字也是一樣 我檢查很久找不出有什麼錯誤= = 希望板上的朋友能幫我看一下 謝謝 #include <stdio.h> #include <stdlib.h> int main(void) { int i,num,prime,flag=0; printf("請輸入一個整數: "); scanf("%d",&num); prime=num-1; while(flag!=1) { for(i=2;i<prime;i++) if(prime%i==0) /* not a prime */ { prime--; continue; } flag=1; } printf("小於%d 的最大質數為%d\n",num,prime); system("pause"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.191.47

09/14 01:59, , 1F
prime--之後i要回到2
09/14 01:59, 1F

09/14 09:52, , 2F
總覺得這個演算法邏輯很怪, 找質數為什麼i要加prime又要
09/14 09:52, 2F

09/14 09:52, , 3F
減呢??建議先畫個簡單的流程圖或寫個pseudo code先吧@@"
09/14 09:52, 3F
文章代碼(AID): #1AhJ1MRf (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AhJ1MRf (C_and_CPP)