Определить все простые двузначные числа. Есть предположение, что решается именно так,...

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

Определить все простые двузначные числа. Есть предположение, что решается именно так, помогите пожалуйста составить блок-схему.

Program example14;

Var i:

integer; function prost(i: integer): boolean;

var j:integer;

begin prost := true; i:=abs(i); for j := 2 to (i div 2) do if (i mod j = 0) then prost := false; end;

begin for i := 10 to 99 do if prost(i) = true then write(i:5);

readln(i);

end.


Информатика (127 баллов) | 44 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

const
  n = 99;
var
  P:array[2..n] of boolean;
  i, pr:integer;
  flag:boolean;
begin
  for i := 2 to n do
    P[i] := true;
  pr := 2;
  flag := true;
  while flag do
  begin
    i := 2 * pr;
    while i <= n do<br>    begin
      P[i] := false;
      i := i + pr;
    end;
    flag := false;
    for i := pr + 1 to n do
      if P[i] then
      begin
        pr := i;
        flag := true;
        break;
      end;
  end;
 
  for i := 10 to n do
    if P[i] then
      write(i, ' ');
  readln;
end.


Моя быстрее работает :Р
 

(3.1k баллов)
0 голосов

var prost: array [1..100] of integer;
  i, max, n, j: integer;
  is_prost:bool;
Begin
  max := 99;
  prost[1] := 2;
  n := 1;
  for i := 2 to max do begin
    is_prost := true;
    for j := 1 to n do begin
      is_prost := is_prost and not (i mod prost[j] = 0);
    end;
    if is_prost then begin
      n := n + 1;
      prost[n] := i;
    end;
  end;

  for i := 1 to n do
    if prost[i] > 9 then write(prost[i], ' ');
End.

(53.1k баллов)