Васильевич Валерьевна
?>

Написать программу которая определяет является ли введённое с клавиатуры натуральное число n простым числом (n< 32000)

Информатика

Ответы

kep92
Program test;
uses utils;
var
  n,i,sum,time:longint;
  flag:boolean;
begin
    readln(n);
    if n<2 then flag:=false;{Единица - не простое число}
    if n=2 then flag:=true;{2 - простое}
    if (n>2) and (n mod 2 <> 0) then begin{ после двойки простые числа только нечетные}
      for i:=1 to n do begin{проверяем что бы было только 2 делителя}
        sum:=sum+1;
      end;
      if sum=2 then flag:=true;
    end
    else flag:=false;
    if flag then writeln('Число простое') else writeln('Число НЕ простое');
    time:=milliseconds;
    writeln('Времени затрачено ',time:10,' ms.');
end.
Все проверки сделаны для сокращения времени работы программы.
bochkarevazh
Уровень А
type
  num=integer; { можно поменять на real, longint, даже char... }

procedure Swap(var a,b:num);
{ меняет местами значения a и b }
var
  t:num;
begin
  t:=a; a:=b; b:=t
end;

procedure Moving(var a,b,c:num);
begin
  if a>b then begin
    Swap(a,b);
    if b>c then begin
      Swap(b,c);
      if a>b then Swap(a,b)
    end
  end
  else begin
    if b>c then Swap(b,c);
    if a>b then Swap(a,b)
  end
end;

var
  a,b,c:num;
begin
  Write('Введите три числа: '); Read(a,b,c);
  Moving(a,b,c);
  Writeln(a,' ',b,' ',c)
end.

Уровень В
function Gcd(a,b: longint): longint;
{ Нахождение НОД }
var
  i: longint;
begin
  while b <> 0 do
  begin
    a := a mod b;
    i := b; b := a; a := i
  end;
  gcd := a
end;

procedure ShortFraction(var m,n:longint);
var
  k:longint;
begin
  k:=Gcd(m,n);
  m:=m div k; n:=n div k
end;

var
  a,b:longint;
begin
  Write('Введите числитель и знаменатель дроби: '); Readln(a,b);
  ShortFraction(a,b);
  Writeln('Дробь после сокращения равна ',a,'/',b)
end.

Тестовое решение:
Введите числитель и знаменатель дроби: 25 15
Дробь после сокращения равна 5/3
barnkim
Const
  m = 5;
  n = 8;

var
  a: array[1..m, 1..n] of integer;
  i, j, t: integer;

begin
  Randomize;
  Writeln('Исходный массив');
  for i := 1 to m do
  begin
    for j := 1 to n do
    begin
      a[i, j] := Random(101) - 50;
      Write(a[i, j]:4)
    end;
    Writeln
  end;
  for j:=1 to n do begin t:=a[1,j]; a[1,j]:=a[3,j]; a[3,j]:=t end;
  Writeln('Полученный массив');
  for i := 1 to m do
  begin
    for j := 1 to n do Write(a[i,j]:4);
    Writeln
  end
end.

Тестовое решение:
Исходный массив
  45  20 -15  33 -37  26 -30  -3
 -27  43 -24   4 -14  18 -50   5
 -28 -47  11  27  -8  42 -19 -39
  16  43 -18   0 -32  25  11  22
  27 -37 -44 -38 -50   7 -45 -30
Полученный массив
 -28 -47  11  27  -8  42 -19 -39
 -27  43 -24   4 -14  18 -50   5
  45  20 -15  33 -37  26 -30  -3
  16  43 -18   0 -32  25  11  22
  27 -37 -44 -38 -50   7 -45 -30

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Написать программу которая определяет является ли введённое с клавиатуры натуральное число n простым числом (n< 32000)
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Узлиян Фурсов1488
Chuhnin195107364
anton-www1
dobrovolsky-tmz1
Александрович_Викторовна
Devaunka40
okabankova7
Shamil
ksyusatom19
sbarichev330
gladkihvv
Zladthesecond577
ivanovanata36937365
petrovichvit2933
peresvetoff100015