Qual è l'approccio migliore per calcolare il fattore primo più grande di un numero?
Sto pensando che il più efficiente sarebbe il seguente:
- Trova il numero primo più basso che si divide in modo pulito
- Controlla se il risultato della divisione è primo
- In caso contrario, trova il successivo più basso
- Vai a 2.
Sto basando questo presupposto sul fatto che sia più facile calcolare i piccoli fattori primi. È giusto? Quali altri approcci dovrei esaminare?
Modifica: ora ho capito che il mio approccio è inutile se ci sono più di 2 fattori primi in gioco, poiché il passaggio 2 fallisce quando il risultato è un prodotto di altri due numeri primi, quindi è necessario un algoritmo ricorsivo.
Modifica di nuovo: e ora mi sono reso conto che funziona ancora, perché l'ultimo numero primo trovato deve essere il più alto, quindi ogni ulteriore verifica del risultato non primo dal passaggio 2 comporterebbe un numero primo più piccolo.
1.
trovare qualsiasi numero che divide chiaramente (per i = 2 a int (sqr (num))) 2.
dividere per il numero (num = num / i) e ricorrono fino a che nulla si trova in 1. 's intervallo 3.
num è il fattore più grande