挑战
给定一个整数,n
作为输入where 36 >= n >= 2
,输出base中有多少个Lynch-Bell数字n
。
输出必须以10为底。
林奇贝尔数字
在以下情况下,数字是Lynch-Bell数字:
- 其所有数字都是唯一的(无重复数字)
- 该数字可被其每个数字整除
- 它不包含零作为其数字之一
因为所有数字都必须是唯一的,并且每个基数中都有一组有限的单位数字,所以林奇-贝尔数字是有限的。
例如,在基数2中,只有一个Lynch-Bell号码1
,因为所有其他号码要么重复数字,要么包含0。
例子
Input > Output
2 > 1
3 > 2
4 > 6
5 > 10
6 > 10
7 > 75
8 > 144
9 > 487
10 > 548
Mathematica Online在10以上的内存不足。您可以使用以下代码生成自己的代码:
Do[Print[i," > ",Count[Join@@Permutations/@Rest@Subsets@Range[#-1],x_/;And@@(x\[Divides]FromDigits[x,#])]&[i]],{i,10,36,1}]
获奖
以字节为单位的最短代码获胜。
>10
吗?
f(36)
。以此为基础进行最快的代码挑战可能会很有趣。