Ниже записан алгоритм. Получив ** вход число x, этот алгоритм печатает число M. Известно,...

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

Ниже записан алгоритм. Получив на вход число x, этот алгоритм печатает число M. Известно, что x > 100. Укажите наименьшее такое (т.е. большее 100) число x, при вводе которого алгоритм печатает 1. Паскаль var x, L, M: integer; begin readln(x); L := x - 12; M := x + 12; while L <> M do if L > M then L := L - M else M := M – L; writeln(M); end.


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

Полный код для решения

var
    x: integer;

function f(x: integer): integer;
var
    L, M: integer;
begin
    L := x - 12;
    M := x + 12;
    while L <> M do
        if L > M then
            L := L - M
        else M := M - L;
    f := M;
end;

begin
    for x := 100 to 100000 do
        if f(x) = 1 then begin
            writeln(x);
            break;
        end;
   
end.

Что делает алгоритм из задания? Ищет наибольший общий множитель чисел M и L. То что ответ должен быть 1, означает, что ищем взаимно простые числа

Ответ 101

(55.0k баллов)