Quão difícil é contar o número de fatores de um número inteiro?

30

Dado um número inteiro de comprimento bits, quão difícil é produzir o número de fatores primos (ou o número alternativo de fatores) de ?n NNnN

Se soubéssemos a fatoração primária de , isso seria fácil. No entanto, se soubéssemos o número de fatores primos ou o número de fatores gerais, não está claro como encontraríamos a fatoração primordial real.N

Este problema é estudado? Existem algoritmos conhecidos que resolvem essa questão sem encontrar a fatoração primária?

Esta questão é motivado por curiosidade e parcialmente por uma questão math.SE .

Artem Kaznatcheev
fonte
3
Se o número de fatores primos for grande, isso implicaria que N possui um fator pequeno que pode ser encontrado facilmente. Por outro lado, se o número de fatores primos de N for pequeno, digamos 2, é semelhante ao problema de fatorar um produto de dois primos e saber que o número de fatores é 2 não parece ajudar. Veja esta pergunta de Omid sobre sua dureza média.
Kaveh
11
Mais uma coisa, como a divisão é uniforme , o problema de contar todos os fatores (não apenas os fatores primos) está em # T C 0 e, portanto, também está em P (e provavelmente também está completo em # T C 0 em A Reduções de C 0 ). TC0#TC0P#TC0AC0
19411 Kaveh
11
Kaveh, se você pudesse expandir seu comentário acima em uma resposta, isso seria ótimo. Não vejo exatamente como a divisão no leva você a contar fatores no # TC 0 sem também implicar que o fatoramento está no TC 0 . Esse mal-entendido provavelmente se deve às minhas próprias falhas, mas uma resposta mais detalhada ajudaria. TC0#TC0TC0
Derrick Stolee
11
conhecido AFAIK! e isso é muito fácil. Mas não vejo onde o argumento termina. ps: Eu acho que sei ver, minha definição de não é boa (é a mesma que # P ) e esse é o problema. #TC0#P
Kaveh
11
@Artem, é definido como o número de percursos de aceitação de uma N G máquina, e um N G máquina pode utilizar apenas logarítmica (em | y | ) quantidade de espaço para adivinhar x . Estamos adivinhando muitos bits se usarmos a definição que escrevi; um cálculo de A C 0 com muitas suposições polinomialmente capturaria N P , contando da mesma forma o número de x s de tamanho polinomial que uma máquina A C 0 aceita n dará # P#LNLNL|y|xAC0NPxAC0#P(adivinhe também o cálculo e verifique se é realmente um cálculo aceitável).
precisa saber é o seguinte

Respostas:

16

Esta não é a minha resposta, mas Terrence Tao deu uma bela resposta a esta pergunta no MathOverflow.

Aqui estão as primeiras linhas de sua resposta. Para ler a resposta completa, siga o link.

Há uma observação do folclore de que, se alguém fosse capaz de contar rapidamente o número de fatores primos de um número inteiro n, provavelmente seria capaz de fatorar rapidamente n completamente. Portanto, acredita-se que o problema dos fatores primos da contagem tenha dificuldade comparável à fatoração em si.

(Eu não tinha certeza se isso deveria ser uma resposta ou um comentário. Mas é realmente uma resposta, embora não tenha sido escrita por mim. Fiz a resposta Wiki da comunidade para que possa ser votado ou aceito sem necessidade desnecessária me dando reputação.)

Robin Kothari
fonte
5
Na minha opinião, um ponteiro para uma resposta como essa merece pontos de reputação (portanto, não deve ser um wiki da comunidade), mas entendo que pessoas diferentes têm opiniões diferentes.
Tsuyoshi Ito
Mas esta não é uma redução formais ....
arnab
11
@arnab: Não, não é. É por isso que ele escreveu "então seria possível fatorar rapidamente n completamente". #
Tsuyoshi Ito
1

Como outros já declararam, contar os fatores provavelmente exigiria o fatoramento n. No entanto, a divisão de teste pode limitar o número de fatores. Você sabe, por exemplo, que possui no máximo n fatores, uma vez que nenhum fator pode ser menor que 2. Testando se N é divisível por 2, você também sabe que N possui no máximo log 3 ( N ) fatores, etc. A desvantagem é que cada redução no tamanho é progressivamente mais difícil - você precisa testar até N 1 / p para excluir N contendo mais do que fatores p .NnNNlog3(N)N1/pNp

Foo Barrigno
fonte