[問題] 判別是否為質數已回收

看板MATLAB作者 (風之牙)時間16年前 (2009/11/23 22:27), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
我是一位matlab 新手 想問各位大大一些基本問題 我想判別是否為質數, 但不用isprime, 須用for 但一直出現問題 不知要如何更改 function table(num) a=0; if num<2 fprintf('請輸入大於2的整數') elseif num=2 fprintf('2是質數!!') else for i=2:num-1 n=rem(num,i) if n=0 a=1; break end end end if a=1 fprintf('%d不是質數!!\n',num) else fprintf('%d是質數!!\n',num) end -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.41.52

11/23 22:53, , 1F
首先先開根號,然後用比開根號後數字還要小的全部質數去
11/23 22:53, 1F

11/23 22:54, , 2F
除,全部都無法整除就表示該數為質數
11/23 22:54, 2F

11/23 22:54, , 3F
不然就土法煉鋼從1開始遞增去除某數,若到了某數的一半
11/23 22:54, 3F

11/23 22:55, , 4F
都沒出現整除,那表示該數為質數
11/23 22:55, 4F

11/24 00:27, , 5F
你的寫法單純錯在判斷式的== 例: if n==0
11/24 00:27, 5F

11/25 21:55, , 6F
謝謝大大指教,已結決
11/25 21:55, 6F
文章代碼(AID): #1B2fkrh9 (MATLAB)