Terinspirasi oleh pertanyaan ini di Matematika .
Masalah
Biarkan
n
menjadi bilangan alami≥ 2
. Ambil pembagi terbesarn
- yang berbeda darin
dirinya sendiri - dan kurangi darin
. Ulangi sampai Anda mendapatkan1
.
Pertanyaan
Berapa banyak langkah yang diperlukan untuk meraih 1
angka tertentu n ≥ 2
.
Contoh terperinci
Mari
n = 30
.
Pembagi terbesar:
1. 30 is 15 --> 30 - 15 = 15
2. 15 is 5 --> 15 - 5 = 10
3. 10 is 5 --> 10 - 5 = 5
4. 5 is 1 --> 5 - 1 = 4
5. 4 is 2 --> 4 - 2 = 2
6. 2 is 1 --> 2 - 1 = 1
Dibutuhkan 6 langkah untuk mencapainya 1
.
Memasukkan
- Input adalah bilangan bulat
n
, di manan ≥ 2
. - Program Anda harus mendukung input hingga nilai integer maksimum bahasa.
Keluaran
- Cukup tampilkan jumlah langkah, seperti
6
. - Leading / trailing spasi putih atau baris baru baik-baik saja.
Contohnya
f(5) --> 3
f(30) --> 6
f(31) --> 7
f(32) --> 5
f(100) --> 8
f(200) --> 9
f(2016^155) --> 2015
Persyaratan
- Anda bisa mendapatkan input dari
STDIN
, argumen baris perintah, sebagai parameter fungsi atau dari padanan terdekat. - Anda dapat menulis suatu program atau fungsi. Jika ini adalah fungsi anonim, harap sertakan contoh cara memintanya.
- Ini adalah kode-golf sehingga jawaban terpendek dalam byte menang.
- Celah standar tidak diijinkan.
Seri ini dapat ditemukan di OEIS juga: A064097
Logaritma kuasi didefinisikan secara induktif oleh
a(1) = 0
dana(p) = 1 + a(p-1)
jikap
adalah prima dana(n*m) = a(n) + a(m)
jikam,n > 1
.
2^32 - 1
. Sisanya terserah Anda dan sistem Anda. Harapan, inilah yang Anda maksud dengan pertanyaan Anda.