login
A390536
Composite integers k = b * c such that A029837(k) < A029837(b) + A029837(c) for all b>1, c>1, where A029837(x) = ceiling(log_2(x)).
0
15, 25, 27, 51, 55, 57, 63, 85, 95, 99, 111, 115, 117, 119, 121, 123, 125, 185, 187, 201, 205, 207, 209, 213, 215, 219, 221, 231, 235, 237, 243, 245, 247, 249, 253, 255, 289, 323, 335, 355, 361, 365, 387, 391, 393, 395, 407, 411, 415, 417, 423, 425, 429, 437, 445, 447, 451
OFFSET
1,1
COMMENTS
These numbers cannot represent the support sizes of bipartite separable quantum registers containing ceiling(log_2(k)) qubits.
a(1)=15 is also the smallest n for which A003313(15) < A014701(15).
LINKS
Szymon Łukaszyk, On the quantum separability of qubit registers, arXiv:2601.15364 [physics.gen-ph], 2026.
Szymon Łukaszyk, On the quantum separability of qubit registers, Frontiers, 2026.
EXAMPLE
117 is a term since its two factorizations 117 = 3*39 and 9*13 both have ceiling(log_2(117)) = 7 < ceiling(log_2(b)) + ceiling(log_2(c)).
45 is not a term since among its factorizations is 45 = 3*15 which fails since ceiling(log_2(45)) >= ceiling(log_2(3)) + ceiling(log_2(15)).
PROG
(MATLAB)
function k_belongs=isok(k)
k_belongs=false;
if mod(k, 2) %odd k
f = factor(k); % Prime factors
n = numel(f);
products = []; % Generate all possible subsets (except empty) Using binary masks
for i = 1:2^n - 1
subset = f(logical(bitget(i, 1:n)));
b = prod(subset);
c = k / b;
if mod(k, b) == 0 & b>1 & c>1
products = [products; sort([b c])];
end
end
products = unique(products, 'rows'); % Remove duplicate products
if length(products) % k is not a prime
seq_candidate = 0;
for l=1:size(products, 1)
if ceil(log2(products(l, 1))) + ceil(log2(products(l, 2))) > ceil(log2(k)) % k=l*m is a candidate
seq_candidate = seq_candidate+1;
end
end
if seq_candidate == size(products, 1) % All possible products of k=b*c are candidates
k_belongs=true;
end
end
end
end
(PARI) c(n) = if( n<2, 0, exponent(n-1)+1); \\ A029837
isok(k) = if (numdiv(k) > 2, fordiv(k, d, if ((d>1) && (d<k) && (c(k) >= c(d) + c(k/d)), return(0))); return(1)); \\ Michel Marcus, Nov 14 2025
(Python)
from itertools import count, islice, takewhile
from sympy import isprime, divisors
def A390536_gen(startvalue=4): # generator of terms >= startvalue
for n in count(max(4, startvalue)):
m = (n-1).bit_length()
if not isprime(n) and all(d==1 or m<(d-1).bit_length()+(n//d-1).bit_length() for d in takewhile(lambda d:d*d<=n, divisors(n))):
yield n
A390536_list = list(islice(A390536_gen(), 57)) # Chai Wah Wu, Nov 20 2025
CROSSREFS
KEYWORD
nonn
AUTHOR
Szymon Lukaszyk, Nov 09 2025
EXTENSIONS
More terms from Michel Marcus, Nov 11 2025
STATUS
approved