"Простий мурашник" - це вперта тварина, яка орієнтується цілими числами та ділить їх, поки не залишиться лише праймес!
Спочатку ми маємо нескінченний масив A, що містить усі цілі числа> = 2: [2,3,4,5,6,.. ]
Нехай p
буде положення мурашки на масиві. Спочатку,p = 0
(масив 0-індексується)
Кожного повороту мураха рухатиметься наступним чином:
- якщо
A[p]
прайм, мураха переходить у наступне положення:p ← p+1
- інакше, якщо
A[p]
це складене число, нехайq
буде його меншим дільником> 1. ДілимоA[p]
наq
, і додаємоq
доA[p-1]
. Мураха рухається до попереднього положення:p ← p-1
Ось перші кроки для мурашки:
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 ...
^
Ваша програма повинна виводити положення мурашки після n
рухів. (можна припустити n <= 10000
)
Тестові приклади:
0 => 0
10 => 6
47 => 9
4734 => 274
10000 => 512
Редагувати. ви також можете використовувати 1-індексовані списки, прийнятно відображати результати 1, 7, 10, 275, 513 для вищевказаного тестового випадку.
Це код-гольф, тому виграє код з найкоротшим кодом у байтах.
n
(чи може складений випадок коли-небудь відсунути мураш ліворуч від початкової 2
).
1,7,10,275,513
якщо вказано 1-індексування? Або вони все ще повинні відповідати вашим результатам.