"Semut utama" adalah hewan keras kepala yang menavigasi bilangan bulat dan membaginya sampai hanya tersisa bilangan prima!
Awalnya, kami memiliki array tak terbatas A yang berisi semua bilangan bulat> = 2: [2,3,4,5,6,.. ]
Membiarkan p
menjadi posisi semut pada array. Mulanya,p = 0
(array diindeks 0)
Setiap belokan, semut akan bergerak sebagai berikut:
- jika
A[p]
prima, semut bergerak ke posisi berikutnya:p ← p+1
- lain, jika
A[p]
adalah bilangan komposit, biarkanq
menjadi pembagi yang lebih kecil> 1. Kami membagiA[p]
olehq
, dan kami tambahkanq
untukA[p-1]
. Semut bergerak ke posisi sebelumnya:p ← p-1
Inilah langkah pertama untuk semut:
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 Anda harus menampilkan posisi semut setelah n
bergerak. (Anda bisa berasumsi n <= 10000
)
Kasus uji:
0 => 0
10 => 6
47 => 9
4734 => 274
10000 => 512
Sunting. Anda juga dapat menggunakan daftar yang diindeks 1, dapat diterima untuk menampilkan hasil 1, 7, 10, 275, 513 untuk test case di atas.
Ini adalah kode-golf, jadi kode dengan kode terpendek dalam byte akan menang.
n
(atau apakah case komposit bisa mendorong semut ke kiri inisial 2
).
1,7,10,275,513
jika 1-pengindeksan dinyatakan? Atau apakah mereka masih harus mencocokkan output Anda.