Какое наибольшее число может быть напечатано третьим
Ниже записан алгоритм. После выполнения алгоритма было напечатано 3 числа. Первые два напечатанных числа – это числа 13 и 65. Какое наибольшее число может быть напечатано третьим
| Паскаль | Си | Python | ||
| var x, y, z: integer; r, a, b: integer; begin readln(x, у); if у > x then begin z:= x; x:= у; у:= 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(у); end. |
#include <stdio.h> int main(void) { int r, a, b, x, y, z; scanf(″%d%d″, &x, &y); if (у > x) { z = x; x = у; у = z; } a = x; b = y; while (b > 0) { r = a % b; a = b; b = r; } printf(“%d\n%d\n%d”, a, x, y); } |
|
Решение:
if (у > x){ z = x; x = у; у = z; } : Если y больше, чем x, они обмениваются со значениями. Это означает, что x всегда больше y. Значения x и y не изменяются в оставшейся части программы. Второе напечатано число и третье напечатано число являются х и у. x=65 и x>y.
Следующая часть программы находит НОД.
a = x; b = y;
while (b > 0)
{
r = a % b;
a = b;
b = r;
}
a=13.
Это означает, что НОД 65 и y должны быть 13, а у должен быть меньше, чем 65, но должно быть наибольшее число. Это 52.
Ответ: 52