Operacja liczenia reszty z dzielenia jest bardzo kosztowna czyli czasochłonna. W zadaniu maksymalna wartość n to 1000000000, dla tak dużego n Twój program nie wyrobi się w czasie 1s. Moja podpowiedź jest taka: nie musisz sprawdzać wszystkich liczb od 1 do n. Zauważ, że jeżeli liczba n=16 ma dzielnik 2 to jednocześnie oznacza też, że ma dzielnik 16/2 czyli 8. Wykorzystaj to.