A173670 Last nonzero decimal digit of (10^n)!.
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, 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, 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
Offset: 0
Examples
a(1) = 8, because (10^1)! = 3628800.
Links
- Washington Bomfim, Table of n, a(n) for n = 0..1000
- Washington Bomfim, An algorithm to find the last nonzero digit of n!.
- Washington Bomfim, A property of the last non-zero digit of factorials.
Crossrefs
Programs
-
Mathematica
f[n_] := If[n > 1, Mod[6Times @@ (Rest[FoldList[{ 1 + #1[[1]], #2!2^(#1[[1]]#2)} &, {0, 0}, Reverse[IntegerDigits[n, 5]]]]), 10][[2]], 1]; Table[ f[10^n], {n, 0, 104}] (* Jacob A. Siehler *)
-
PARI
\\ L is the list of the N digits of 2^n in base 5. \\ L[1] = a_0 ,..., L[N] = a_(N-1). convert(n)={n=2^n; x=n; N=floor(log(n)/log(5)) + 1; L = listcreate(N); while(x, n=floor(n/5); r=x-5*n; listput(L, r); x=n;); L; N }; 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
-
Python
from functools import reduce from sympy.ntheory.factor_ import digits 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<
Chai Wah Wu, Dec 07 2023 -
SageMath
A173670 = lambda n: A008904(10**n) # D. S. McNeil, Dec 14 2010
Formula
From Washington Bomfim, Jan 04 2011: (Start)
a(n) = A008904(10^n).
a(0) = 1, a(1) = 8, if n >= 2, with
2^n represented in base 5 as (a_h, ..., a_1, a_0)_5,
t = Sum_{i = h, h-1, ..., 0} (a_i even),
x = Sum_{i = h, h-1, ..., 1} (Sum_{k = h, h-1, ..., i} (a_i)),
z = (x + t/2) mod 4, and y = 2^z,
a(n) = 6*(y mod 2) + y*(1 -( y mod 2)). (End)
Extensions
Extended by D. S. McNeil, Dec 12 2010
Comments