"Katak utama" adalah hewan aneh yang melompat di antara bilangan bulat, sampai tiba pada 3 atau 19 ...
Program Anda harus menerima bilangan bulat n
sebagai input dan output hasil dari algoritma di bawah ini ( 3
atau 19
).
Untuk bilangan bulat yang diberikan n >= 2
:
- Biarlah
f
posisi katak. Awalnya diatur ken
- jika
f = 3
atauf = 19
: katak berhenti melompat - hentikan program dan outputf
. - if
f
is prime: katak melompat ke posisi2×f-1
. Kembali ke langkah 2. - jika
f
komposit: marid
menjadif
pembagi utama terbesar. Katak melompat ke posisif-d
. Kembali ke langkah 2.
Contoh:
Contoh dengan n = 5
:
5 > 9 > 6 > 3 stop
Program harus menampilkan 3
.
Contoh lain dengan n = 23
:
23 > 45 > 40 > 35 > 28 > 21 > 14 > 7 > 13 > 25 > 20 > 15 > 10 > 5 > 9 > 6 > 3 stop
Sekali lagi, program harus menampilkan 3
.
Kasus uji:
10 => 3
74 => 19
94 => 3
417 => 3
991 => 19
9983 => 19
Anda dapat mengasumsikan 1 < n < 1000000
(saya telah memeriksa akhir program untuk nilai-nilai ini).
3
atau 19
, kita dapat mengubah item 2. dalam algoritma untuk mengatakan bahwa jika katak telah memasuki loop apa pun (menemukan posisi yang telah dilihatnya sebelumnya), maka ia berhenti melompat dan mengembalikan yang terkecil. anggota dari loop itu.