ВВЕРХ
ВНИЗ
  • Home
  • While
  • While 22 - 23

Определить простоту числа онлайн

На этой странице рассмотрим задачи while22 и while23 задачника Абрамяна: определение простоты числа и задача о нахождении наибольшего общего делителя соответственно. Ниже есть форма для проверки числа на простоту, для этого нужно ввести целое положительное число в жёлтое поле и нажать "проверить".





While22. Дано целое число N (> 1). Если оно является простым, то есть не имеет положительных делителей, кроме 1 и самого себя, то вывести true, иначе вывести false.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
var
  N, i, m: integer;
  f: boolean; { Индикатор простоты числа: 
                True - протое, False - составное }

begin
  write('N = ');
  readln(N); { <-- вводим число для проверки на простоту }
  if N = 1 then f := false { <-- число 1 НЕ считается простым }
  else
  if N = 2 then f := true { <-- число 2 - простое }
  else
  { Если N + 1 нечетное, то есть N четное, то число N не может 
  быть простым (f = false): }
  if odd(N + 1) then f := false
  else begin { <-- далее проверяем нечетные числа }
    i := 3; { <-- минимальное нечетное простое число }
    f := true; { <-- по умолчанию число считаем простым }
    { Достаточно проверять все i, квадрат которых не больше N, 
    ибо в противном случае делители начнут повторяться. }
    while (i * i <= N) and f do 
      { Если i - ДЕЛИТЕЛЬ N, то число N составное и f = false. 
      В противном случае увеличиваем делитель i на 2: }
      if N mod i = 0 then f := false
      else i := i + 2
  end;
  writeln;
  { Выводим значение f. Если f в цикле не изменилась на, то мы 
  получим True, в противном случае - False: }
  writeln(' ', f);
  readln
end.

While23. Даны целые положительные числа A и B. Найти их наибольший общий делитель (НОД), используя алгоритм Евклида:

НОД(A, B) = НОД(B, A mod B), если B ≠ 0; НОД(A, 0) = A,

где «mod» обозначает операцию взятия остатка от деления.

Решение этой задачи смотрите на странице наибольший общий делитель.


Яндекс.Метрика