НУЖНА ПОМОЩЬ С ИНФОРМАТИКОЙ!!!ЯЗЫК ПАСКАЛЬ.

0 голосов
16 просмотров

НУЖНА ПОМОЩЬ С ИНФОРМАТИКОЙ!!!ЯЗЫК ПАСКАЛЬ.


image

Информатика (25.3k баллов) | 16 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
№1

var
  i,s:integer;
 
begin
  s:=0;
  for i:=1 to 101 do s:=s+i*(i+1);
  Writeln('S=',s)
end.

Результат
S=353702

№2

// PascalABC.NET 3.3, сборка 1627 от 27.01.2018
// Внимание! Если программа не работает, обновите версию!

function Divizors(n:integer):array of integer;
begin
  if n=1 then begin SetLength(Result,1); Result[0]:=1 end
  else begin
    var m:=Trunc(ln(n)/ln(2))+2;
    var a:array of integer; SetLength(a,m);
    a[0]:=1;
    var d:=2;
    m:=2;
    while (n mod d<>0) and (d<=n) do Inc(d);<br>    a[1]:=d;
    if d<>n then begin
      for var i:=a[1]+1 to n div a[1] do
        if n mod i = 0 then begin a[m]:=i; Inc(m) end;
      a[m]:=n;
      SetLength(a,m+1)
      end
    else SetLength(a,2);
    Result:=a;
  end
end;


begin
  var n:=ReadInteger('n=');
  Write(n,': ');
  Divizors(n).Println;
end.

Пример
n= 4096
4096: 1 2 4 8 16 32 64 128 256 512 1024 2048 4096
(150k баллов)