A115569 Lynch-Bell numbers: numbers n such that the digits are all different (and do not include 0) and n is divisible by each of its individual digits.
1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 15, 24, 36, 48, 124, 126, 128, 132, 135, 162, 168, 175, 184, 216, 248, 264, 312, 315, 324, 384, 396, 412, 432, 612, 624, 648, 672, 728, 735, 784, 816, 824, 864, 936, 1236, 1248, 1296, 1326, 1362, 1368, 1395, 1632, 1692, 1764, 1824
Offset: 1
Examples
384/3 = 128, 384/8 = 48, 384/4 = 96. Thus 384 is Lynch-Bell as it is a multiple of each of its three distinct digits.
Links
- Rick L. Shepherd, List of all terms
Crossrefs
Programs
-
Maple
with(combinat): f:= l-> parse(cat(l[])): T:= n-> sort(map(f, select(l-> andmap(x-> irem(f(l), x)=0, l), map(p-> permute(p)[], choose([$1..9], n)))))[]: seq(T(n), n=1..7); # Alois P. Heinz, Jul 31 2022
-
Mathematica
Reap[For[n = 1, n < 10^7, n++, id = IntegerDigits[n]; If[FreeQ[id, 0] && Length[id] == Length[Union[id]] && And @@ (Divisible[n, #]& /@ id), Print[n]; Sow[n]]]][[2, 1]] (* Jean-François Alcover, Nov 26 2013 *) bnQ[n_]:=Max[DigitCount[n]]==1&&FreeQ[IntegerDigits[n],0]&&Union[Divisible[n,IntegerDigits[ n]]]=={True}; Select[Range[2000],lbnQ] (* Harvey P. Dale, Jun 02 2023 *) Cases[Union @@ ((FromDigits@#&/@Flatten[Permutations@# & /@ Subsets[Range@9, {#}], 1])&/@ Range@9), ?(DeleteDuplicates[Divisible[#, IntegerDigits@#]] == {True} &)] (* _Hans Rudolf Widmer, Aug 27 2024 *)
-
PARI
A115569_row(n)={if(n,my(u=vectorv(n,i,10^i)\10,S=List(),M);forvec(v=vector(n,i,[1,9]),(M=lcm(v))%10==0||normlp(v,1)%3^valuation(M,3)||for(k=1,n!,vecextract(v,numtoperm(n,k))*u%M ||listput(S,vecextract(v,numtoperm(n,k))*u)),2);Set(S),concat(apply(A115569_row,[1..7])))} \\ Return terms of length n if given, else the vector of all terms. The checks M%10 and |v| % 3^v(...) are not needed but reduce CPU time by 97%. - M. F. Hasler, Jan 31 2016
-
PARI
A115569(n)=n>9&&for(r=2,7,(n-=#t=A115569_row(r))>9||return(t[n-9+#t]));n \\ M. F. Hasler, Jan 31 2016
-
Python
def ok(n): s = str(n) if "0" in s or len(set(s)) < len(s): return False return all(n%int(d) == 0 for d in s) afull = [k for k in range(9867313) if ok(k)] print(afull[:55]) # Michael S. Branicky, Jul 31 2022
Extensions
The full list of terms was sent in by Rick L. Shepherd (see link) and also by Sébastien Dumortier, Apr 04 2006
Comments