Meydan okuma
Bir tamsayı verildiğinde n
, girdi 36 >= n >= 2
olarak, bazda kaç Lynch-Bell sayısının çıktısını verir n
.
Çıktı 10 bazında olmalıdır.
Lynch-Bell Numaraları
Bir sayı, aşağıdaki durumlarda Lynch-Bell sayılarıdır:
- Tüm basamakları benzersizdir (basamakların tekrarı yoktur)
- Sayı, basamaklarının her biri ile bölünebilir
- Rakamlarından biri olarak sıfır içermez
Tüm rakamların benzersiz olması gerektiğinden ve her bir tabanda sınırlı sayıda tek haneli sayı bulunduğundan, sınırlı sayıda Lynch-Bell sayısı vardır.
Örneğin, baz 2'de sadece bir Lynch-Bell numarası vardır 1
, çünkü diğer tüm sayılar ya rakamları tekrarlar ya da 0 içerir.
Örnekler
Input > Output
2 > 1
3 > 2
4 > 6
5 > 10
6 > 10
7 > 75
8 > 144
9 > 487
10 > 548
Mathematica Online, taban 10'un üstündeki belleği tüketti. Kendi kodunuzu oluşturmak için aşağıdaki kodu kullanabilirsiniz:
Do[Print[i," > ",Count[Join@@Permutations/@Rest@Subsets@Range[#-1],x_/;And@@(x\[Divides]FromDigits[x,#])]&[i]],{i,10,36,1}]
Kazanan
Bayt cinsinden en kısa kod kazanır.
>10
?
f(36)
. Buna dayanarak en hızlı kod meydan okuma muhtemelen ilginç olurdu.