Ich muss die sequentiellen 25 Primzahlen drucken, nachdem ich den Benutzer frage, eine Zahl einzugeben. Der folgende Code druckt tatsächlich Primzahlen, druckt jedoch leere Leerzeichen. Ich kann nicht herausfinden, wie man NUR die Primzahlen und keine Leerstellen drucken kann. Ich habe dies so weit:Drucken von Primzahlen
Public Function IsPrime(value)
Dim remainder As Double
Dim rounded As Long
Dim Max As Long
Dim j As Long
IsPrime = 0
Max = 1 + Int(value/2)
For j = 2 To Max
rounded = Int(value/j)
remainder = (value/j) - rounded
If remainder = 0 Then
Exit For
End If
Next j
If j = Max + 1 Or value = 2 Then
IsPrime = 1
End If
If value <= 1 Then
IsPrime = 0
End If
End Function
Public Sub printprime()
Dim x As Integer
Dim row As Integer
Dim col As Integer
Dim j As Integer
Dim matrix1(1 To 5, 1 To 5) As Integer
x = InputBox("Please enter a number ")
j = 1
For row = 1 To 5
For col = 1 To 5
If IsPrime(x + j) = 1 Then
Cells(row, col) = x + j
matrix1(row, col) = Cells(row, col)
End If
j = j + 1
Next col
Next row
Ich schlage vor, dass Sie durch das Ausfüllen Zahlen auf nur eine Zeile beginnen. Sie sollten die Spaltennummer nur erhöhen, wenn eine Primzahl gefunden wird. Wenn dies funktioniert, ändern Sie es so, dass es nach Zeile und Spalte gefüllt wird. Tipp: Die Mod-Funktion wird für Letzteres helfen. –
Wo setze ich das Inkrement, um es nur zu inkrementieren, wenn ein Prim gefunden wird? @AndrewMorton – johnbowen
vergesst, ich habe das herausgefunden! @AndrewMorton – johnbowen