2019独角兽企业重金招聘Python工程师标准>>>
质数的定义
质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)
大于1的自然数若不是素数,则称之为合数(也称为合成数)。
1000以内的质数
寻找质数算法
'List Primary Number
Sub Prime_Number()
Dim num&
Dim Arr(), i&
Dim pnFlag As Byte
Dim Count&
Dim wrapLine%
Dim m&, n&
Sheet6.[A10].CurrentRegion.ClearContents
num = 10000 'Number Range
wrapLine = 10 'Export Column
ReDim Arr(1 To num, 0 To 1) 'Record Number+Flag
For i = 1 To num
Arr(i, 0) = i 'Orignal Input
If i >= 2 Then pnFlag = IsPrimeNumber(i)
Arr(i, 1) = pnFlag '0=Normal;1=PrimeNumber
Next i
'Export Result to Worksheet
For i = 2 To num
If Arr(i, 1) = 1 Then
Count = Count + 1 'Count
m = Int(Count / wrapLine) 'Export Row
n = Count Mod wrapLine 'Export Column
If n = 0 Then n = wrapLine: m = m - 1 '0 status
With Sheet6
.Cells(10 + m, n) = Arr(i, 0) 'Prime Number
End With
End If
Next i
Debug.Print Timer
End Sub
'Calculate Prime Number
'0=Normal;1=Prime Number
Function IsPrimeNumber(ByVal n&) As Byte
Dim j&
j = 2
Do While j * j <= n 'prime number always<SQRT(n)
If n Mod j = 0 Then
IsPrimeNumber = 0
Exit Function
End If
j = j + 1
Loop
IsPrimeNumber = 1
End Function