"Ếch chính" là một loài động vật kỳ lạ nhảy giữa các số nguyên, cho đến khi nó đến vào ngày 3 hoặc 19 ...
Chương trình của bạn nên chấp nhận một số nguyên n
làm đầu vào và đầu ra kết quả của thuật toán bên dưới ( 3
hoặc 19
).
Đối với một số nguyên cho trước n >= 2
:
- Hãy
f
là vị trí của ếch. Ban đầu nó được đặt thànhn
- if
f = 3
hoặcf = 19
: ếch dừng nhảy - tạm dừng chương trình và đầu raf
. - nếu
f
là số nguyên tố: con ếch nhảy đến vị trí2×f-1
. Quay trở lại bước 2. - if
f
là hợp số: hãyd
làf
ước số nguyên tố lớn nhất. Con ếch nhảy đến vị tríf-d
. Quay trở lại bước 2.
Ví dụ:
Một ví dụ với n = 5
:
5 > 9 > 6 > 3 stop
Chương trình nên xuất 3
.
Một ví dụ khác với n = 23
:
23 > 45 > 40 > 35 > 28 > 21 > 14 > 7 > 13 > 25 > 20 > 15 > 10 > 5 > 9 > 6 > 3 stop
Một lần nữa, chương trình nên xuất ra 3
.
Các trường hợp thử nghiệm:
10 => 3
74 => 19
94 => 3
417 => 3
991 => 19
9983 => 19
Bạn có thể giả sử 1 < n < 1000000
(tôi đã kiểm tra kết thúc chương trình cho các giá trị này).
3
hoặc 19
, chúng ta có thể thay đổi mục 2. trong thuật toán để nói rằng nếu con ếch đã đi vào bất kỳ vòng lặp nào (gặp phải một vị trí mà nó đã thấy trước đó), thì nó sẽ ngừng nhảy và trả về giá trị nhỏ nhất thành viên của vòng lặp đó.