Dzień dobry, mam problem z zadaniem SUMPRO z serwisu SPOJ. Oto link do niego.
http://www.spoj.com/problems/SUMPRO/
Stworzyłem już w języku C swój program rozwiązujący to zadanie i dający poprawne wyniki dla każdego N z zakresu podanego w zadaniu, niestety czas wykonania jest zbyt długi.
Skróciłem już ilość wykonywanych działan o 33% zauważając,że N/k=1 dla k>N/2 i dzięki temu najpierw w pętli dopóki k<=N/2 dodaję do sumy w pętli for k*(N/k), zaś następnie od k do k<=N dodaję po prostu samo k do sumy, bo N/k=1; Zatem zamiast 3 operacji wykonuję jedną dla k>N/2 czyli wykonuję 66% operacji jakie wykonywałem na początku, ale i tak jest za długo bo time limit exceeded.
Nie chcę wstawiać kodu, gdyż regulamin ostro to krytykuje. Czy ktoś ma jakiś pomysł?