|
|
A372308
|
|
Composite numbers k such that the digits of k are in nonincreasing order while the digits of the concatenation of k's ascending order prime factors, with repetition, are in nondecreasing order.
|
|
5
|
|
|
4, 6, 8, 9, 10, 20, 21, 30, 32, 40, 42, 50, 54, 60, 63, 64, 70, 72, 74, 75, 80, 81, 84, 90, 92, 94, 96, 98, 100, 111, 200, 210, 222, 300, 320, 333, 400, 420, 432, 441, 444, 500, 531, 540, 553, 554, 600, 611, 630, 632, 640, 666, 700, 711, 720, 750, 752, 800, 810, 840, 851, 864, 871, 875, 882
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,1
|
|
COMMENTS
|
As all the numbers 10,20,...,90,100 are terms, all numbers that are recursively 10 times these values are also terms as they just add an additional 2 and 5 to their parent's prime factor list.
A number 999...9998 will be a term if it has two prime factors 2 and 4999...999. Therefore 999999999999998 and 999...9998 (with 54 9's) are both terms. See A056712.
|
|
LINKS
|
|
|
EXAMPLE
|
42 is a term as 42 = 2 * 3 * 7, and 42 has nonincreasing digits while its prime factor concatenation "237" has nondecreasing digits.
|
|
PROG
|
(Python)
from sympy import factorint, isprime
from itertools import count, islice, combinations_with_replacement as mc
def nd(s): return s == "".join(sorted(s))
def bgen(d):
yield from ("".join(m) for m in mc("9876543210", d) if m[0]!="0")
def agen(): # generator of terms
for d in count(1):
out = set()
for s in bgen(d):
t = int(s)
if t < 4 or isprime(t): continue
if nd("".join(str(p)*e for p, e in factorint(t).items())):
out.add(t)
yield from sorted(out)
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|