In der Arithmetik wird eine n-glatte Zahl , bei der n eine gegebene Primzahl ist, mathematisch als positive ganze Zahl definiert, die keine Primfaktoren größer als n hat. Zum Beispiel ist 42 7-glatt, weil alle Primfaktoren kleiner oder gleich 7 sind, aber 44 ist nicht 7-glatt, weil es auch 11 als Primfaktor hat.
Definieren Sie eine ziemlich glatte Zahl als eine Zahl ohne Primfaktoren, die größer sind als die eigene Quadratwurzel. Somit kann die Liste der ziemlich glatten Zahlen wie folgt formuliert werden:
- (EDITED!) 1 ist eine ziemlich glatte Zahl, da es keine Primfaktoren gibt. (Beachten Sie, dass in der Originalversion dieser Frage 1 fälschlicherweise aus der Liste ausgeschlossen wurde. Wenn Sie diese also von Ihren Ausgaben ausschließen, werden Sie nicht als falsch markiert.)
- Zwischen 4 (= 2 2 ) und 8 sind die hübschen glatten Zahlen 2-glatt, was bedeutet, dass sie 2 als einzigen Primfaktor haben.
- Zwischen 9 (= 3 2 ) und 24 sind die hübschen glatten Zahlen 3-glatt und können 2s und 3s in ihren primären Faktorisierungen haben.
- Zwischen 25 (= 5 2 ) und 48 sind die hübschen glatten Zahlen 5-glatt und können 2s, 3s und 5s in ihren Hauptfaktorisierungen haben.
- Und so weiter, indem Sie die Kriterien jedes Mal aktualisieren, wenn das Quadrat der nächsten Primzahl erreicht wird.
Die Liste der ziemlich glatten Zahlen ist fest und beginnt wie folgt: 1, 4, 8, 9, 12, 16, 18, 24, 25, ...
Ihre Herausforderung besteht darin, Code zu schreiben, der alle ziemlich glatten Zahlen bis einschließlich 10.000 (= 100 2) ausgibt ) . Zwischen jeder Zahl in der Liste und der nächsten muss mindestens ein Trennzeichen (es spielt keine Rolle, um welche Art es sich handelt - Leerzeichen, Komma, Zeilenvorschub usw.) stehen, es ist jedoch völlig unerheblich, welches Zeichen verwendet wird.
Wie üblich gewinnt die niedrigste Byteanzahl - offensichtlich ist es für Sie hier nicht von Vorteil, die Liste einfach auszugeben. Viel Glück!
1)