Per rendere più efficiente la tua ricerca dei divisori piuttosto che far andare il tuo for fino ad n potresti farlo andare fino alla radice di n e trovare due divisori per volta. Ti faccio un esempio: i divisori di 100 sono 1, 2, 4, 5, 10, 20, 25, 50, 100 ma li puoi associare a coppie (1,100) (2,50) (4,25) (5,20) (10,10) dove il secondo elemento è 100/ il primo -> puoi usare un divisore per trovarne un altro!