%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_