%I #55 Feb 22 2025 12:56:00
%S 1,8,4,2,8,6,4,8,6,4,2,8,6,6,6,6,8,2,6,8,8,2,4,2,2,8,2,6,2,6,4,4,6,6,
%T 4,2,8,2,6,4,6,4,2,4,4,2,8,8,4,4,2,6,6,4,4,8,8,4,6,2,2,4,4,2,4,6,2,4,
%U 4,4,2,2,6,8,6,6,4,2,2,4,4,2,8,8,2,6,2,6,2,2,6,2,2,8,6,2,2,4,6,6
%N Last nonzero decimal digit of (10^n)!.
%C Except for n = 1, a(n) is also the last nonzero digit of (2^n)!. See the third Bomfim link. - _Washington Bomfim_, Jan 04 2011
%H Washington Bomfim, <a href="/A173670/b173670.txt">Table of n, a(n) for n = 0..1000</a>
%H Washington Bomfim, <a href="http://oeis.org/w/images/4/48/AlgLastFinal1.txt">An algorithm to find the last nonzero digit of n!</a>.
%H Washington Bomfim, <a href="http://oeis.org/w/images/6/61/Proof3.txt">A property of the last non-zero digit of factorials</a>.
%F From _Washington Bomfim_, Jan 04 2011: (Start)
%F a(n) = A008904(10^n).
%F a(0) = 1, a(1) = 8, if n >= 2, with
%F 2^n represented in base 5 as (a_h, ..., a_1, a_0)_5,
%F t = Sum_{i = h, h-1, ..., 0} (a_i even),
%F x = Sum_{i = h, h-1, ..., 1} (Sum_{k = h, h-1, ..., i} (a_i)),
%F z = (x + t/2) mod 4, and y = 2^z,
%F a(n) = 6*(y mod 2) + y*(1 -( y mod 2)). (End)
%e a(1) = 8, because (10^1)! = 3628800.
%t f[n_] := Mod[6Times @@ (Rest[FoldList[{ 1 + #1[[1]], #2!2^(#1[[1]]#2)} &, {0, 0}, Reverse[IntegerDigits[n, 5]]]]), 10][[2]]; f[0] = 1; Table[ f[10^n], {n, 0, 104}]] (* _Jacob A. Siehler_ *)
%o (SageMath) A173670 = lambda n: A008904(10**n) # _D. S. McNeil_, Dec 14 2010
%o (PARI)\\ L is the list of the N digits of 2^n in base 5. \\ L[1] = a_0 ,..., L[N] = a_(N-1).
%o convert(n)={n=2^n; x=n; N=floor(log(n)/log(5)) + 1;
%o L = listcreate(N);
%o while(x, n=floor(n/5); r=x-5*n; listput(L, r); x=n;);
%o L; N
%o };
%o print("0 1");print("1 8");for(n=2,1000,print1(n," "); convert(n); q=0;t=0;x=0;forstep(i=N,2,-1,a_i=L[i];q+=a_i;x+=q;t+=a_i*(1-a_i%2););a_i=L[1];t+=a_i*(1-a_i%2);z=(x+t/2)%4;y=2^z;an=6*(y%2)+y*(1-(y%2)); print(an)); \\ _Washington Bomfim_, Dec 31 2010
%o (Python)
%o from functools import reduce
%o from sympy.ntheory.factor_ import digits
%o def A173670(n): return reduce(lambda x,y:x*y%10,((1,1,2,6,4)[a]*((6,2,4,8)[i*a&3] if i*a else 1) for i, a in enumerate(digits(1<<n,5)[-1:0:-1],n)))*6%10 if n else 1 # _Chai Wah Wu_, Dec 07 2023
%Y Cf. A008904, final nonzero digit of n!.
%Y Cf. A055476, Powers of ten written in base 5.
%Y Cf. A053824, Sum of digits of n written in base 5.
%K nonn,easy,base,changed
%O 0,2
%A _Vladimir Reshetnikov_, Nov 24 2010
%E Extended by _D. S. McNeil_, Dec 12 2010