Witam:
Mam za zadanie znalezdz liczby doskonale z podanego zakresu.
Liczba doskonala to taka ktorej dzielniki po zsumowaniu rowne sa liczbie pierwotnej (np. 1 ma dzielnik tylko 1 , oraz 6 gdyz dzieli sie tylko przez 3 2 1 a 3+2+1=6)
Nie biezemy pod uwage liczby tej samej.
Program napisalem, lecz potrzebuje optymalizacji kodu by dzialal jak najszybciej.
(Moj PSOR powiedzial ze to bedzie gdzies tam gdzie zaznaczylem komentarzami {Start} i {STOP} ale nie sugerujcie sie tym az tak bardzo ;) ...)
wszystkie sugestie mile widziane
(Byc moze takie dzielniki liczb doskonalych sa liczbami pierwszymi ? - Jezeli tak to nie bedzie problemu z napisaniem kodu) plz help.
var i,j,zakres,suma:integer;
begin
readln(zakres);
for i:=1 to zakres do begin
suma:=1;
for j:=2 to i div 2 do
{START}
if i mod j = 0 then
suma:=suma+j;
{STOP}
if suma=i then
write(suma,' ');
end;
end.