Jak obliczyć liczbę dzielników. Iterowanie od 1 do danej liczby jest bez sensu.
Mój algorytm. Najpierw dla liczb, których pierwiastek€N:
Bierzemy 100. x, czyli pierwiastek jest równy 10.
Sprawdź dzielniki od 1 do 10 więc mamy: 1,2,4,5,10
Sprawdź ile jest dzielników od tych, które powstały.
Mamy: 100, 50, 25, 20 (10 już mamy).
Morał: ilość dzielników liczb, których pierwiastek jest liczbą całkowitą to:
(ilość dzielników z zakresu <1;pierwisatek_liczby>)*2-1;
A jak z liczbami których pierwiastek nie jest całkowity?
Tak samo z małą różnicą: pierwiastek zaokrąglamy w górę. Wtedy:
(ilość dzielników z zakresu <1;pierwisatek_liczby>)*2;
Implementacja algorytmu i jego optymalizacja pod względem szybkości i pamięci dla Ciebie