Qual é a melhor abordagem para calcular o maior fator primo de um número?
Estou pensando que o mais eficiente seria o seguinte:
- Encontre o número primo mais baixo que divide corretamente
- Verifique se o resultado da divisão é primo
- Caso contrário, encontre o próximo menor
- Vá para 2.
Estou baseando essa suposição em que é mais fácil calcular os pequenos fatores primos. Isso é certo? Quais outras abordagens devo analisar?
Edit: Agora eu percebi que minha abordagem é inútil se houver mais de 2 fatores primos em jogo, uma vez que a etapa 2 falha quando o resultado é um produto de duas outras primas, portanto, é necessário um algoritmo recursivo.
Edite novamente: e agora percebi que isso ainda funciona, porque o último número primo encontrado deve ser o mais alto; portanto, qualquer teste adicional do resultado não primo da etapa 2 resultaria em um primo menor.
1.
encontrar qualquer número que divide claramente (para i = 2 a int (sqr (num))) 2.
dividir por esse número (num = num / i) e recorrência até que nada é encontrado em 1. 's intervalo 3.
num é o maior fator