32 lines
856 B
Text
32 lines
856 B
Text
Private Function kprime(ByVal n As Integer, k As Integer) As Boolean
|
|
Dim p As Integer, factors As Integer
|
|
p = 2
|
|
factors = 0
|
|
Do While factors < k And p * p <= n
|
|
Do While n Mod p = 0
|
|
n = n / p
|
|
factors = factors + 1
|
|
Loop
|
|
p = p + 1
|
|
Loop
|
|
factors = factors - (n > 1) 'true=-1
|
|
kprime = factors = k
|
|
End Function
|
|
|
|
Private Sub almost_primeC()
|
|
Dim nextkprime As Integer, count As Integer
|
|
Dim k As Integer
|
|
For k = 1 To 5
|
|
Debug.Print "k ="; k; ":";
|
|
nextkprime = 2
|
|
count = 0
|
|
Do While count < 10
|
|
If kprime(nextkprime, k) Then
|
|
Debug.Print " "; Format(CStr(nextkprime), "@@@@@");
|
|
count = count + 1
|
|
End If
|
|
nextkprime = nextkprime + 1
|
|
Loop
|
|
Debug.Print
|
|
Next k
|
|
End Sub
|