|
|
A348894
|
|
Smallest n-digit number such that the remainder after dividing by sum of digits is A348730(n).
|
|
3
|
|
|
1, 79, 799, 9599, 98999, 599999, 8999998, 89998999, 899999999, 9899999998, 99988999999, 779999999999, 8999899999999, 89999999999999, 799899999999998, 9999989999999999, 89999999989999999, 799999999999999999, 9999999999999998999, 88999999999999999999, 899999999899999999999
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,2
|
|
COMMENTS
|
|
|
LINKS
|
|
|
PROG
|
(Python)
from functools import lru_cache
from sympy.combinatorics.partitions import IntegerPartition
from sympy.utilities.iterables import partitions, multiset_permutations
@lru_cache(maxsize=None)
def intpartition(n, m): return tuple(''.join(str(d) for d in IntegerPartition(p).partition+[0]*(m-s)) for s, p in partitions(n, k=9, m=m, size=True))
l, c, nmin, k = 9*n, 0, 10**n-1, 10**(n-1)
while l > c:
for p in intpartition(l, n):
for q in multiset_permutations(p):
w = int(''.join(q))
if w >= k:
wr = w % l
if wr > c:
c = wr
nmin = w
if wr == c and nmin > w:
nmin = w
l -= 1
return nmin
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|