Esta não é uma resposta, mas está perto. A seguir, é uma prova de que o problema é NP-difícil sob reduções aleatórias.
Existe uma relação óbvia com a soma do subconjunto, que é: suponha que você conheça os fatores de : p 1 , p 2 , ... , p k . Agora, você deseja encontrar um subconjunto S de p 1 … p k de modo queNp1p2…pkSp1 ... pk
registroL≤∑pi∈Slogpi≤logU.
O problema com a tentativa de usar essa idéia para mostrar o problema é NP-hard é que se você tem um problema de soma subconjunto com números , t 2 , ... , t k , você pode não necessariamente encontrar números primos em tempo polinomial, tais que log p i ct t i (onde por α , quer dizer, aproximadamente, proporcional ao). Este é um problema real, porque, uma vez subconjunto de soma não é fortemente NP-completo, você precisa encontrar estes log p i para grandes inteiros t i .t1t2…tklogpi∝ti∝logpiti
Agora, suponha que exigem que todos os inteiros ... t k em um subconjunto problema da soma estão entre x e x ( 1 + 1 / k ) , e que a soma é de aproximadamente 1t1 … tkxx(1+1/k). O problema da soma do subconjunto ainda será NP-complete e qualquer solução será a soma dosk/2inteiros. Nós podemos mudar o problema de números inteiros para reais se deixarmost ' i estar entretieti+112∑EutEuk / 2t′iti , e em vez de exigir o montante a ser exatamenteé, exigimos que seja entreses+1ti+110kss . Só precisamos especificar nossos números com cerca de4logkbits de precisão para fazer isso. Assim, se começamos com números combitsBe podemos especificar números reaislogpipara aproximadamenteB+4logkbits de precisão, podemos realizar nossa redução.s+1104logkBlogpiB+4logk
Agora, a partir wikipedia (via comentário de Hsien-Chih abaixo), o número de primos entre e T + T 5 / 8 é θ ( T 5 / 8 / log T ) , então se você basta escolher números aleatoriamente nesse intervalo, e testá-los quanto à primalidade, com alta probabilidade de obter um primo em tempo polinomial.TT+T5/8θ(T5/8/logT)
Agora, vamos tentar a redução. Digamos que o nosso são todos B bits de comprimento. Se tomarmos T i de comprimento 3 B pedaços, então podemos encontrar um número primo p i perto T i com 9 / 8 B bits de precisão. Assim, podemos escolher T i para que log T i alfa t i com precisão 9 / 8tiBTi3BpiTi9/8BTilogTi∝ti bits. Isso nos permite encontrar p i ≈ T i para que log p i alfa t i com precisão 9 / 89/8Bpi≈Tilogpi∝ti bits. Se um subconjunto desses primos se multiplica para algo próximo ao valor alvo, existe uma solução para os problemas de soma do subconjunto original. Por isso, deixe N = Π i p i , escolher G e L de forma adequada, e que tem uma redução randomizado de soma subconjunto.9/8BN=ΠipiLU