A051626 Period of decimal representation of 1/n, or 0 if 1/n terminates.
0, 0, 1, 0, 0, 1, 6, 0, 1, 0, 2, 1, 6, 6, 1, 0, 16, 1, 18, 0, 6, 2, 22, 1, 0, 6, 3, 6, 28, 1, 15, 0, 2, 16, 6, 1, 3, 18, 6, 0, 5, 6, 21, 2, 1, 22, 46, 1, 42, 0, 16, 6, 13, 3, 2, 6, 18, 28, 58, 1, 60, 15, 6, 0, 6, 2, 33, 16, 22, 6, 35, 1, 8, 3, 1, 18, 6, 6, 13, 0, 9, 5, 41, 6, 16, 21, 28, 2, 44, 1
Offset: 1
Examples
From _M. F. Hasler_, Dec 14 2015: (Start) a(1) = a(2) = 0 because 1/1 = 1 and 1/2 = 0.5 have a finite decimal expansion. a(3) = a(6) = a(9) = a(12) = 1 because 1/3 = 0.{3}*, 1/6 = 0.1{6}*, 1/9 = 0.{1}*, 1/12 = 0.08{3}* where the sequence of digits {...}* which repeats indefinitely is of length 1. a(7) = 6 because 1/7 = 0.{142857}* with a period of 6. a(17) = 16 because 1/17 = 0.{0588235294117647}* with a period of 16. a(19) = 18 because 1/19 = 0.{052631578947368421}* with a period of 18. (End)
Links
- T. D. Noe, Table of n, a(n) for n = 1..10000
- Project Euler, Reciprocal cycles: Problem 26
- Eric Weisstein's World of Mathematics, Repeating Decimal
- Index entries for sequences related to decimal expansion of 1/n
Crossrefs
Programs
-
Maple
A051626 := proc(n) local lpow,mpow ; if isA003592(n) then RETURN(0) ; else lpow:=1 ; while true do for mpow from lpow-1 to 0 by -1 do if (10^lpow-10^mpow) mod n =0 then RETURN(lpow-mpow) ; fi ; od ; lpow := lpow+1 ; od ; fi ; end: # R. J. Mathar, Oct 19 2006
-
Mathematica
r[x_]:=RealDigits[1/x]; w[x_]:=First[r[x]]; f[x_]:=First[w[x]]; l[x_]:=Last[w[x]]; z[x_]:=Last[r[x]]; d[x_] := Which[IntegerQ[l[x]], 0, IntegerQ[f[x]]==False, Length[f[x]], True, Length[l[x]]]; Table[d[i], {i,1,90}] (* Hans Havermann, Oct 19 2006 *) fd[n_] := Block[{q},q = Last[First[RealDigits[1/n]]];If[IntegerQ[q], q = {}]; Length[q]];Table[fd[n], {n, 100}] (* Ray Chandler, Dec 06 2006 *) Table[Length[RealDigits[1/n][[1,-1]]],{n,90}] (* Harvey P. Dale, Jul 03 2011 *) a[n_] := If[ PowerMod[10, n, n] == 0, 0, MultiplicativeOrder[10, n/2^IntegerExponent[n, 2]/5^IntegerExponent[n, 5]]]; Array[a, 90] (* myself in A003592 and T. D. Noe in A007732 *) (* Robert G. Wilson v, Feb 20 2025 *)
-
PARI
A051626(n)=if(1
M. F. Hasler, Dec 14 2015 -
Python
def A051626(n): if isA003592(n): return 0 else: lpow=1 while True: for mpow in range(lpow-1,-1,-1): if (10**lpow-10**mpow) % n == 0: return lpow-mpow lpow += 1 # Kenneth Myers, May 06 2016
-
Python
from sympy import multiplicity, n_order def A051626(n): return 0 if (m:=(n>>(~n & n-1).bit_length())//5**multiplicity(5,n)) == 1 else n_order(10,m) # Chai Wah Wu, Aug 11 2022
Formula
a(n)=A132726(n,1); a(n)=a(A132740(n)); a(A132741(n))=a(A003592(n))=0. - Reinhard Zumkeller, Aug 27 2007
Extensions
More terms from James Sellers
Comments