"Простий мурашник" - це вперта тварина, яка орієнтується цілими числами та ділить їх, поки не залишиться лише праймес!
Спочатку ми маємо нескінченний масив 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-індексування? Або вони все ще повинні відповідати вашим результатам.
