Possiamo trovare tutti i fattori primi usando un setaccio di erastoteni. Ma come troviamo TUTTI i fattori di un numero?
Ad esempio, 24 = 2x2x2x3
Ma la lista completa dei fattori è - 1,2,3,4,6,8,12,24.
Sto pensando di spingere tutti i fattori in un vettore, quindi usando una maschera di bit per ottenere ogni sottoinsieme. I problemi con questo approccio sono -
-
La complessità sarà O (n). Per n = 10 ^ 10, ci sono 35 fattori, quindi 2 ^ 35 set di fattori, che è 10 ^ 10.
-
Sottoinsiemi ripetuti. Come nell'esempio sopra, otteniamo più sottoinsiemi con gli stessi fattori ripetuti, come (22 ....), (2.2 ...), (2..2 ..), ecc. Come rimuovere questa ridondanza?