※ 引述《rosemary (迷迭香)》之銘言:
: ※ 引述《kayelijah (懶貓)》之銘言:
: : 今天我們老師說可以用6行寫出除何驗證並找出1-100的質數...
: : 請問這....有可能嗎...
: : 我寫了10行多呢...
: : 各位大哥..假如真的有這方法可以指教一下嗎...
: : 我想破頭了都覺得怪...
: 哎...只能濃縮到七行
: For m As Integer = 2 To 100
: Dim Flag As Boolean = True
: For n As Integer = 2 To m
: If (m Mod n) = 0 And m <> n Then Flag = False
: Next n
: If Flag = True Then ListBox1.Items.Add(m)
: Next m
因為我對VB不熟,我用pseudo code說明概念
(不確定要幾行,不過六行應該是有機會)
=====================================================
"for loop" n=2~100
若 (n mod 2)*(n mod 3)*(n mod 5)*(n mod 7) 不等於 0
則 記錄此數為質數
end of "for loop"
=====================================================
說明:
原理--
數學課本說
若是 n=p*q, p或q一定有一個比n的開根號要小
作法--
因為是一百以內,所以拿2, 3, 5, 7來除就好了
如果其中一個除得盡,餘數就會是0,一行就可以寫完四個判斷式
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.19.196
※ 編輯: kyrox 來自: 140.112.19.196 (11/27 14:22)