Die "Primameise" ist ein hartnäckiges Tier, das durch die ganzen Zahlen navigiert und sie teilt, bis nur noch Primzahlen übrig sind!
Anfangs haben wir ein unendliches Array A, das alle ganzen Zahlen> = 2 enthält: [2,3,4,5,6,.. ]
Sei pdie Position der Ameise auf dem Array. Anfangs p = 0(Array ist 0-indiziert)
In jeder Runde bewegt sich die Ameise wie folgt:
- Wenn
A[p]es Prim ist, bewegt sich die Ameise zur nächsten Position:p ← p+1 - andernfalls, wenn
A[p]es sich um eine zusammengesetzte Zahl handelt, seiqihr kleinerer Teiler> 1. Wir teilenA[p]durchqund addierenqzuA[p-1]. Die Ameise bewegt sich zur vorherigen Position:p ← p-1
Hier sind die ersten Züge für die Ameise:
2 3 4 5 6 7 8 9 ...
^
2 3 4 5 6 7 8 9 ...
^
2 3 4 5 6 7 8 9 ...
^
2 5 2 5 6 7 8 9 ...
^
2 5 2 5 6 7 8 9 ...
^
2 5 2 5 6 7 8 9 ...
^
2 5 2 5 6 7 8 9 ...
^
2 5 2 7 3 7 8 9 ...
^
Ihr Programm sollte nach nZügen die Position der Ameise ausgeben . (Sie können davon ausgehen n <= 10000)
Testfälle:
0 => 0
10 => 6
47 => 9
4734 => 274
10000 => 512
Bearbeiten. Sie können auch 1-indizierte Listen verwenden. Es ist akzeptabel, die Ergebnisse 1, 7, 10, 275, 513 für den obigen Testfall anzuzeigen.
Das ist Code-Golf, also gewinnt der Code mit dem kürzesten Code in Bytes.
n(oder ob der zusammengesetzte Fall die Ameise jemals nach links von der Initiale schieben könnte 2).
1,7,10,275,513Wird 1-Indizierung angegeben? Oder müssten sie noch mit Ihren Ausgaben übereinstimmen.
