45 lines
1.2 KiB
VB.net
45 lines
1.2 KiB
VB.net
Module Module1
|
|
|
|
Class KPrime
|
|
Public K As Integer
|
|
|
|
Public Function IsKPrime(number As Integer) As Boolean
|
|
Dim primes = 0
|
|
Dim p = 2
|
|
While p * p <= number AndAlso primes < K
|
|
While number Mod p = 0 AndAlso primes < K
|
|
number = number / p
|
|
primes = primes + 1
|
|
End While
|
|
p = p + 1
|
|
End While
|
|
If number > 1 Then
|
|
primes = primes + 1
|
|
End If
|
|
Return primes = K
|
|
End Function
|
|
|
|
Public Function GetFirstN(n As Integer) As List(Of Integer)
|
|
Dim result As New List(Of Integer)
|
|
Dim number = 2
|
|
While result.Count < n
|
|
If IsKPrime(number) Then
|
|
result.Add(number)
|
|
End If
|
|
number = number + 1
|
|
End While
|
|
Return result
|
|
End Function
|
|
End Class
|
|
|
|
Sub Main()
|
|
For Each k In Enumerable.Range(1, 5)
|
|
Dim kprime = New KPrime With {
|
|
.K = k
|
|
}
|
|
Console.WriteLine("k = {0}: {1}", k, String.Join(" ", kprime.GetFirstN(10)))
|
|
Next
|
|
End Sub
|
|
|
|
End Module
|