Sfida
Dato un numero intero, ncome input where 36 >= n >= 2, genera quanti numeri di Lynch-Bell ci sono nella base n.
L'output deve essere nella base 10.
Numeri di Lynch-Bell
Un numero è un numero di Lynch-Bell se:
- Tutte le sue cifre sono uniche (nessuna ripetizione di cifre)
- Il numero è divisibile per ciascuna delle sue cifre
- Non contiene zero come una delle sue cifre
Poiché, tutte le cifre devono essere univoche e in ogni base è presente un set finito di numeri a una cifra, esiste un numero finito di numeri Lynch-Bell.
Ad esempio, nella base 2 esiste un solo numero Lynch-Bell 1, poiché tutti gli altri numeri ripetono le cifre o contengono uno 0.
Esempi
Input > Output
2 > 1
3 > 2
4 > 6
5 > 10
6 > 10
7 > 75
8 > 144
9 > 487
10 > 548
Mathematica Online ha esaurito la memoria sopra la base 10. È possibile utilizzare il seguente codice per generare il proprio:
Do[Print[i," > ",Count[Join@@Permutations/@Rest@Subsets@Range[#-1],x_/;And@@(x\[Divides]FromDigits[x,#])]&[i]],{i,10,36,1}]
vincente
Vince il codice più breve in byte.
>10?
f(36). Fare una sfida con il codice più veloce basato su questo sarebbe probabilmente interessante.