Tantangan
Diberikan bilangan bulat, n
sebagai input di mana 36 >= n >= 2
, menampilkan berapa banyak nomor Lynch-Bell yang ada di pangkalan n
.
Output harus dalam basis 10.
Nomor Lynch-Bell
Angka adalah nomor Lynch-Bell jika:
- Semua digitnya unik (tidak ada pengulangan digit)
- Jumlahnya dapat dibagi dengan masing-masing digit
- Ini tidak mengandung nol sebagai salah satu digitnya
Karena, semua digit harus unik, dan Anda memiliki satu set nomor digit tunggal di setiap basis, ada sejumlah terbatas nomor Lynch-Bell.
Sebagai contoh, dalam basis 2 hanya ada satu nomor Lynch-Bell 1
, karena semua angka lainnya dapat mengulangi angka atau mengandung angka 0.
Contohnya
Input > Output
2 > 1
3 > 2
4 > 6
5 > 10
6 > 10
7 > 75
8 > 144
9 > 487
10 > 548
Mathematica Online kehabisan memori di atas basis 10. Anda dapat menggunakan kode berikut untuk menghasilkan sendiri:
Do[Print[i," > ",Count[Join@@Permutations/@Rest@Subsets@Range[#-1],x_/;And@@(x\[Divides]FromDigits[x,#])]&[i]],{i,10,36,1}]
Kemenangan
Kode terpendek dalam byte menang.
>10
?
f(36)
. Membuat tantangan kode tercepat berdasarkan ini mungkin akan menarik.