login
Numbers whose factorial has '4' as its final nonzero digit.
6

%I #36 Dec 07 2023 17:36:38

%S 4,7,20,21,23,25,26,28,37,42,49,52,55,56,58,64,69,75,76,78,87,92,99,

%T 100,101,103,112,117,124,134,135,136,138,140,141,143,147,152,155,156,

%U 158,164,169,179,182,195,196,198,202,205,206,208,214,219

%N Numbers whose factorial has '4' as its final nonzero digit.

%C From _Robert Israel_, Dec 16 2016: (Start)

%C If n is in the sequence, then:

%C if n == 0 (mod 5), n+1 is in the sequence;

%C if n == 1 (mod 5), n+1 is in A045550;

%C if n == 2 (mod 5), n+1 is in A045547;

%C if n == 3 (mod 5), n+1 is in A045549. (End)

%H Robert Israel, <a href="/A045548/b045548.txt">Table of n, a(n) for n = 1..10000</a>

%H <a href="/index/Fi#final">Index entries for sequences related to final digits of numbers</a>

%p count:= 0:

%p r:= 1:

%p for n from 2 while count < 100 do

%p r:= r*n;

%p if r mod 10 = 0 then r:= r/10^padic:-ordp(r, 5) fi;

%p if r mod 10 = 4 then count:= count+1; A[count]:= n fi;

%p od: seq(A[i], i=1..100); # _Robert Israel_, Dec 16 2016

%t f[n_] := Mod[6 Times @@ (Rest[ FoldList[{1 + #1[[1]], #2! 2^(#1[[1]] #2)} &, {0, 0}, Reverse[ IntegerDigits[n, 5]]]]), 10][[2]] (* after _Jacob A. Siehler_ & _Greg Dresden_ in A008904 *); f[0] = f[1] = 1; Select[ Range[150], f[#] == 4 &] (* _Robert G. Wilson v_, Dec 28 2016 *)

%o (Python)

%o from itertools import count, islice

%o from functools import reduce

%o from sympy.ntheory.factor_ import digits

%o def A045548_gen(startvalue=1): # generator of terms >= startvalue

%o return filter(lambda n:4==reduce(lambda x,y:x*y%10,(((6,2,4,8,6,2,4,8,2,4,8,6,6,2,4,8,4,8,6,2)[(a<<2)|(i*a&3)] if i*a else (1,1,2,6,4)[a]) for i, a in enumerate(digits(n,5)[-1:0:-1])),6), count(max(startvalue,1)))

%o A045548_list = list(islice(A045548_gen(),30)) # _Chai Wah Wu_, Dec 07 2023

%Y Cf. A000142, A008904, A045547, A045549, A045550.

%K nonn,base

%O 1,1

%A _Jeff Burch_