Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Turbo Pascal] найти все совершенные числа


Автор: Alx 6.5.2008, 23:25
совершенные числа - числа, равные сумме всех своих делителей, например 6, 28
надо их все найти.
как это сделать? у меня что-то даже идей нету...

Автор: tanuffka 6.5.2008, 23:44
Код

program soversh;
uses crt;
var
   sim,n,i,sum,s,c,k,minus:integer;
   z,z1,res,ste,s4,min,max:integer;
   n1:char;
   ar:array[1..255] of integer;
label l1,l2,l3,l4;
begin
     k:=0; s:=0; s4:=1;
     writeln('vvedite 4isla');
l2:  z1:=1; ste:=1; res:=0;
     n1:=readkey; i:=1;  sum:=0;
     if n1=#45 then minus:=1;
     k:=k+1;
     val(n1,n,c);
     ar[k]:=n;
     if (n1=#32) or(n1=#13) then
        begin
            z1:=k;
            for z:=1 to k do
            begin
            if z1=1 then goto l3;
            res:=res+ste*ar[z1-1];
            ste:=ste*10;
            z1:=z1-1;  end;
            l3:
        k:=0;
        if minus=1 then begin res:=res*(-1); minus:=0; end;
        writeln(res);
        end;
 sim:=res;
 if sim<>0 then begin
 if s4=1 then begin min:=sim; max:=sim; end;
 s4:=s4+1;
 if (min>sim) and (sim<>0) then min:=sim;
 if (max<sim) and (sim<>0) then max:=sim;   end;



 l1: if i<sim then begin
     if ((sim mod i)=0) then sum:=sum+i;
     i:=i+1; goto l1; end;[/color]


   if sum=sim then s:=s-sim  else s:=s+sim;
     if n1=#27 then writeln('Srednee=',s,' Min=',min,' Max=',max) else goto l2;
repeat until keypressed;
end.



Добавлено @ 23:50
Вот. Моя прога расположенная выше вот что делает --> вводятся числа, до нажатия ESC , и считается среднее - если число совершенное , то вычитается, если нет, то прибавляется, выделенный код программы проверяет наличие совершенного числа

Автор: Kuvaldis 6.5.2008, 23:51
tanuffka
В данном разделе явно выбирай теги для подсветки кода ;) (я подправил)

Автор: opjox 7.5.2008, 00:07
http://ru.wikipedia.org/wiki/Совершенные_числа
В пункте «История изучения» множество фактов, касающихся этих чисел, которых достаточно для реализации программы (причем не банальным жестким перебором). 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)