login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A371862
Positive integers that can be written as the product of two or more other integers, none of which uses any of the digits in the number itself.
1
4, 6, 8, 9, 10, 12, 14, 16, 18, 20, 21, 24, 27, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 49, 52, 54, 56, 57, 58, 60, 63, 64, 66, 68, 69, 70, 72, 76, 78, 80, 81, 84, 86, 87, 88, 90, 96, 98, 99, 100, 102, 104, 106, 108, 110, 111, 112, 114, 116, 117, 118, 120
OFFSET
1,1
COMMENTS
Infinite since 10^k = 2^k * 5^k and 10^k - 1 = 3^2 * (10^k - 1)/9 are terms for k > 0 and are the smallest (k+1)-digit and largest k-digit terms, resp. All repdigits consisting of 4's, 6's, 8's, or 9's are also terms. - Michael S. Branicky, Apr 09 2024
No number ending in 5 is a term. - Jon E. Schoenfield, Apr 09 2024
Terms are composite. If 9 consecutive positive integers are terms then they are between two consecutive primes at least 14 apart. - David A. Corneth, Apr 10 2024
All products of x (repdigits consisting of 3's or 6's) and 10x + 7 are terms. - Ivan N. Ianakiev, Apr 11 2024
LINKS
Bernardo Recamán Santos, Melissa's Numbers, Puzzling Stack Exchange, Mar 13 2024.
EXAMPLE
60 is a term because it can be expressed as 4 * 15, avoiding its own digits 6 and 0. 50 isn't because there is no way of expressing 50 avoiding both 5 and 0.
112 is a term since 112 = 4*4*7 and is the first term requiring a product with three factors.
PROG
(Python)
from sympy import divisors, isprime
from functools import cache
@cache
def ok(n, avoid=tuple()):
if avoid == tuple(): avoid = set(str(n))
else: avoid = set(avoid)
if n%10 == 5 or len(avoid) == 10 or isprime(n): return False
for d in divisors(n)[1:-1]:
if set(str(d)) & avoid == set():
if set(str(n//d)) & avoid == set(): return True
if ok(n//d, tuple(sorted(avoid))): return True
return False
print([k for k in range(200) if ok(k)]) # Michael S. Branicky, Apr 10 2024
CROSSREFS
KEYWORD
nonn,base
AUTHOR
STATUS
approved