100балов. решите второе задание пожалуйста. через паскаль или кумир.

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

100балов. решите второе задание пожалуйста.
через паскаль или кумир.


image

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

var
  n, i, j: longint;
  b: boolean;

begin
  read(n);
  for i := 2 to n do
  begin
    b := true;
    for j := 2 to i - 1 do
      if(i mod j = 0) then b := false;
    if(b) then write(i, ' ');
  end;
end.

2)Решето Эратосфена

var  ar: array of boolean;
  i, j, n, c: longint;

begin
  read(n);
  setlength(ar, n + 1);
  for i := 2 to n do
    ar[i] := true;
  for i := 2 to n do
    if(ar[i]) then
     begin
      write(i, ' ');
      c := i;
      j := i + c;
      while(j <= n) do<br>      begin
        ar[j] := false;
        j += c;
      end;
    end;
end.

В приложении ниже программы выводящие зависимость времени работы программы от N.
Из данных результатов можно сделать вывод: Алгоритм полного перебора делителей самый медленный и неэффективный, но простой в реализации, а решето Эратосфена работает намного быстрее перебора делителей, но сложнее в реализации и дает значительное преимущество только на довольно больших значениях N.

(3.7k баллов)