For i = 3 To n
For j = 2 To n - 1
p = i Mod j
If p = 0 Then Exit For
Next j
If [a1] = "" Then
[a1] = j
Else
Cells([a65535].End(3).Row + 1, "a").Value = j
End If
Next i
End Sub作者: fangsc 時間: 2020-10-13 14:43
Sub TEST_1()
n = Range("E1")
For i = 3 To n Step 2 '可減一半的迴圈
For j = 2 To n - 1
P = i Mod j
If P = 0 And i <> j Then Exit For
Next j
If P > 0 Then r = r + 1: Cells(r, 1) = i
Next i
End Sub
或試試:
Sub TEST_1()
n = Range("E1")
For i = 3 To n Step 2
For j = 2 To Int(Sqr(i)) + 1
P = i Mod j
If P = 0 Then Exit For
Next j
If P > 0 Then r = r + 1: Cells(r, 1) = i
Next i
End Sub作者: fangsc 時間: 2020-10-13 16:13
感謝大家的指導.作者: fangsc 時間: 2020-10-14 13:41
回復 5#准提部林
不好意思, 再次提問.
If P > 0 Then r = r + 1: Cells(r, 1) = i
: 冒號 是何作用? 我有goole, 冒號是用來連接2程式碼, 以簡化程式
但是如果把這一行直接分成2行, 得出的結果是不同的.
如果不用冒號, 請問程式該如何寫?作者: 准提部林 時間: 2020-10-14 14:36