"Asal karınca", tam sayılar arasında dolaşan ve yalnızca bir tane kalan primerler olana kadar onları bölen obstinat bir hayvandır!
Başlangıçta,>> 2 tam sayılarını içeren sonsuz bir A dizisine sahibiz: [2,3,4,5,6,.. ]
pDizideki karınca pozisyonu olsun . Başlangıçta, p = 0(dizi 0 dizinli)
Her turda, karınca aşağıdaki gibi hareket eder:
- eğer
A[p]asal sonraki pozisyona karınca hamle:p ← p+1 - eğer başka,
A[p]kompozit sayıdır, letqBiz bölmek daha küçük bölen> 1. olmakA[p]tarafındanqve biz eklemekqiçinA[p-1]. Karınca önceki pozisyonuna hareket eder:p ← p-1
İşte karınca için ilk hamle:
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 ...
^
Programınız nhamlelerin ardından karınca pozisyonunu vermeli (varsayabilirsin n <= 10000)
Test durumları:
0 => 0
10 => 6
47 => 9
4734 => 274
10000 => 512
Düzenle. 1 indeksli listeleri de kullanabilirsiniz, yukarıdaki test durumu için 1, 7, 10, 275, 513 sonuçlarının gösterilmesi kabul edilebilir.
Bu kod-golf, yani bayt cinsinden en kısa kod olan kod kazanır.
n(veya kompozit durumun karıncaları başlangıçtaki sola itebilir mi 2).
1,7,10,275,5131-indexing belirtilmişse? Yoksa yine de çıktılarına uymaları gerekecek.
