Strona 1 z 1
Liczby doskonałe w Pascalu
: 4 paź 2009, o 17:56
autor: king.
Nie mogę sobie poradzić z zadaniem. Chodzi o to, aby napisać program w Pascalu wyliczający liczby doskonałe (równe sumie swoich dzielników, bez siebie samej) od 1 do 1000. Bardzo proszę o pomoc i z góry dziękuję.
Liczby doskonałe w Pascalu
: 4 paź 2009, o 22:46
autor: matshadow
w
pseudokodzie:
Kod: Zaznacz cały
for (licz=1 do 1000)
{
suma_dziel=0;
for(i=1 do licz-1)
{
if(licz mod i = 0) suma_dziel=suma_dziel+i;
}
if(suma_dziel=licz) writeln(licz);
}
Liczby doskonałe w Pascalu
: 9 paź 2009, o 18:37
autor: Xitami
Kod: Zaznacz cały
var
p, i, n: longword; //32 bity
s, n1: int64; //64 bity
begin
p:=2;
n:=3; // n = 2^p - 1
n1:=2; // n1 = 2^(p-1)
// n1*n może być liczbą doskonałą
repeat
s:=4; // 1. Lucas-Lehmer test
for i:=3 to p do // 2.
s:=(s*s - 2) mod n; // 3.
if (s=0) or (p=2) then // 4.
writeln('Mersenne=2^', p:2, '-1=', n:12, ', perfect number = ', n1*n);
p+=1;
n1:=n+1;
n:=2*n+1;
until p>31;
end.