|
|
A352156
|
|
Numbers m such that the smallest digit in the decimal expansion of 1/m is 2, ignoring leading and trailing 0's.
|
|
8
|
|
|
4, 5, 16, 36, 40, 44, 45, 50, 108, 160, 216, 252, 288, 292, 308, 360, 364, 375, 396, 400, 404, 440, 444, 450, 500, 1024, 1080, 1375, 1600, 2072, 2160, 2368, 2520, 2880, 2920, 3080, 3125, 3375, 3600, 3640, 3750, 3848, 3960, 4000, 4040, 4125, 4224, 4368, 4400, 4440, 4500, 5000
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
Leading 0's are not considered, otherwise every integer >= 11 would be a term (see examples).
Trailing 0's are also not considered, otherwise numbers of the form 2^i*5^j with i, j >= 0, apart from 1 (A003592) would be terms.
If k is a term, 10*k is also a term; so, terms with no trailing zeros are all primitive terms.
|
|
LINKS
|
|
|
FORMULA
|
|
|
EXAMPLE
|
m = 16 is a term since 1/16 = 0.0625 and the smallest term after the leading 0 is 2.
m = 216 is a term since 1/216 = 0.004629629629... and the smallest term after the leading 0's is 2.
m = 4444 is not a term since 1/4444 = 0.00022502250225... and the smallest term after the leading 0's is 0.
|
|
MATHEMATICA
|
f[n_] := Union[ Flatten[ RealDigits[ 1/n][[1]] ]]; Select[ Range@ 1100, Min@ f@# == 2 &]
|
|
PROG
|
(Python)
from itertools import count, islice
from sympy import multiplicity, n_order
def A352156_gen(startvalue=1): # generator of terms >= startvalue
for n in count(max(startvalue, 1)):
m2, m5 = multiplicity(2, n), multiplicity(5, n)
k, m = 10**max(m2, m5), 10**(t := n_order(10, n//2**m2//5**m5))-1
c = k//n
s = str(m*k//n-c*m).zfill(t)
if s == '0' and min(str(c)) == '2':
yield n
elif '0' not in s and min(str(c).lstrip('0')+s) == '2':
yield n
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|