program znajdujacy liczby doskonale
poczatkujacykoder: Witam, mam za zadanie napisac program znajdujacy liczby doskonale w przedziale od 1 do zadanego
M. Liczba doskonala to taka ktorej suma dzielnikow wlasciwych jest rowna jej samej,
najmniejsza z nich jest 6.
Oto co wyskrobalem, bylbym wdzieczny za wytkniecie bledow, pozdrawiam. (jezyk w ktorym pisze to
pascal)
program doskonale;
var
M,n,i,suma:longint;
begin
repeat
readln(M);
if M<6 then writeln('Zbyt maly zakres!');
until M>=6
suma:=0;
n:=6;
while n<=M do begin
for i:=1 to n−1 do begin
if n mod i = 0 then suma:=suma+i;
end;
if suma=n then writeln(n);
n:=n+1;
end;
readln;
end.
16 paź 22:16
poczatkujacykoder: podbijam
16 paź 23:27
Trivial: suma jest zainicjalizowana w złym miejscu (powinna być w pętli while, na początku).
16 paź 23:40
poczatkujacykoder: dzieki wielkie

nie dawalo mi to spokoju
16 paź 23:56
Trivial: Działa?
16 paź 23:58
poczatkujacykoder: tak
16 paź 23:59
Trivial: woowwooo
To teraz pomyśl nad lepszym algorytmem niż sprawdzanie wszystkich możliwości.
16 paź 23:59
poczatkujacykoder: teraz to mnie zagiales, nie wiem jak inaczej to mozna wykonac
17 paź 00:04
Trivial: Pomyśl, a znajdziesz inny sposób.

Dobranoc.
17 paź 00:05