login
A387866
Numbers that can be split into two numbers whose products of digits are equal.
4
11, 22, 33, 44, 55, 66, 77, 88, 99, 100, 111, 122, 133, 144, 155, 166, 177, 188, 199, 200, 212, 221, 224, 236, 248, 300, 313, 326, 331, 339, 400, 414, 422, 428, 441, 500, 515, 551, 600, 616, 623, 632, 661, 700, 717, 771, 800, 818, 824, 842, 881, 900, 919, 933, 991, 1000
OFFSET
1,1
COMMENTS
Leading zeros are allowed only for the second number, e.g., 1001 split into 10 and 01.
Numbers with more than 1 decimal digit '0' are terms. - Chai Wah Wu, Sep 17 2025
LINKS
EXAMPLE
221 is a term since A007954(2) = A007954(21);
1001 is a term since A007954(10) = A007954(01);
1050 is a term since A007954(10) = A007954(50);
14224 is a term since A007954(142) = A007954(24).
MAPLE
filter:= proc(n) local L, i;
L:= convert(n, base, 10);
ormap(i -> convert(L[1..i], `*`) = convert(L[i+1..-1], `*`), [$1..nops(L)-1])
end proc:
select(filter, [$10 .. 2000]); # Robert Israel, Sep 18 2025
MATHEMATICA
Select[Range[1000], Sum[Boole[Product[Part[(digits=IntegerDigits[#]), i], {i, k}]==Product[Part[digits, i], {i, k+1, IntegerLength[#]}]], {k, IntegerLength[#]-1}]>0 &]
PROG
(Python)
from math import prod
def ok(n):
d = list(map(int, str(n)))
return any(prod(d[:i]) == prod(d[i:]) for i in range(1, len(d)))
print([k for k in range(1001) if ok(k)]) # Michael S. Branicky, Sep 12 2025
(PARI) isok(k) = my(d=digits(k)); for (i=2, #d, if (prod(j=1, i-1, d[j]) == prod(j=i, #d, d[j]), return(1)); ); \\ Michel Marcus, Sep 12 2025
CROSSREFS
KEYWORD
nonn,base,easy
AUTHOR
Stefano Spezia, Sep 10 2025
STATUS
approved