Ниже записан алгоритм. После выполнения алгоритма было напечатано 3 числа. Первые два напечатанных числа — это числа 11 и 66. Какое наибольшее число может быть напечатано третьим?
| Бейсик | Python |
|---|---|
DIM X, Y, Z, R, A, B AS INTEGER INPUT X, Y IF Y > X THEN Z = X: X = Y: Y = Z END IF A = X: B = Y WHILE B > 0 R = A MOD B A = B B = R WEND PRINT A PRINT X PRINT Y
| x, y = int(input()), int(input()) if y > x: z = x x = y y = z a = x b = y while b > 0: r = a % b a = b b = r print(a) print(x) print(y)
|
| Паскаль | Алгоритмический язык |
var x, y, z: integer; var r, a, b: integer; begin readln(x, y); if y >x then begin z := x; x := y; y := z; end; a:= x; b:= y; while b>0 do begin r := a mod b; a := b; b := r; end; writeln(a); writeln(x); write(y); end.
| алг нач цел x, y, z, r, a, b ввод x, y если y > x то z := x; x := y; y := z все a := x; b := y нц пока b>0 r := mod (a, b) a := b b := r кц вывод a, нс, x, нс, y кон
|
| Си++ | |
#include <iostream> using namespace std; int main() { int x, y, z, r, a, b; cin » x » y; if (y > x){ z = x; x = y; y = z; } a = x; b = y; while (b>0){ r = a%b; a = b; b = r; } cout « a « endl « x « endl « y « endl; }
| |
Сначала вводятся два числа и переставляются так, чтобы в переменной x было наибольшее число, а в переменной y – наименьшее из двух:
"if у >x then begin
z:= x;x:= y;y:= z;"
"a:= x; b:= у;
while b>0 do begin
r := a mod b;
a := b;
b := r; "
Алгоритм поиска наибольшего общего делителя, который в итоге оказывается в переменной а.
На экран выводится: сначала значение переменной a (наибольший общий делитель исходных чисел), затем значение x (большее из исходных чисел) и значение y (меньшее из исходных чисел).
По условию первое число — 11, второе — 66. Следовательно, искомое число должно делиться на 11 и быть меньше 66. Наибольшее из таких чисел — 55.
Приведём другое решение на языке Python.
for i in range(1, 1000):
x = i
for j in range(1, 1000):
y = j
if y > x:
z = x
x = y
y = z
a = x
b = y
while b > 0:
r = a % b
a = b
b = r
if a == 11 and x == 66:
print(j) # Из выведенных значений выберем наибольшее

