Напишите процедуру Паскаль по этой программе: var a, b, nod, k: integer; begin readln(a, b); k := 0; while (a <> 0) and (b <> 0) do begin if a > b then a := a mod b else b := b mod a; k := k + 1; end; nod := a + b; writeln(nod, ' ', k); end.
Программы из 5 команд и результаты их выполнения: 11111: 7^5 * 2^5 = 16807 * 32 = 537824 11112: 7^5 / 7 * 2^4 = 2401 * 2^4 = 38416 11122: 7^5 / 7^2 * 2^3 = 343 * 8 = 2744 11222: 7^5 / 7^3 * 2^2 = 49 * 4 = 196 12222: 7^5 / 7^4 * 2 = 7 * 2 = 14 22222: 7^5 / 7^5 = 1 (Сами числа вычислять не обязательно) Все другие программы будут давать в результате одно из перечисленных выше значений. Например, результат программы 12121 = результату программы 11122: 7^5 * 2 / 7 * 2 / 7 * 2 = 7^5 / 7^2 * 2^3 ответ: количество различных чисел = 6
11111: 7^5 * 2^5 = 16807 * 32 = 537824
11112: 7^5 / 7 * 2^4 = 2401 * 2^4 = 38416
11122: 7^5 / 7^2 * 2^3 = 343 * 8 = 2744
11222: 7^5 / 7^3 * 2^2 = 49 * 4 = 196
12222: 7^5 / 7^4 * 2 = 7 * 2 = 14
22222: 7^5 / 7^5 = 1
(Сами числа вычислять не обязательно)
Все другие программы будут давать в результате одно из перечисленных выше значений. Например, результат программы 12121 = результату программы 11122:
7^5 * 2 / 7 * 2 / 7 * 2 = 7^5 / 7^2 * 2^3
ответ: количество различных чисел = 6
Можно это всё расписать подробно, по шагам:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
1 шаг цикла:
A [10] := 2*A[1]
1, 2, 3, 4, 5, 6, 7, 8, 9, 2
2 шаг:
A [9] := 2*A[2]
1, 2, 3, 4, 5, 6, 7, 8, 4, 2
3 шаг:
A [8] := 2*A[3]
1, 2, 3, 4, 5, 6, 7, 6, 4, 2
4 шаг:
A [7] := 2*A[4]
1, 2, 3, 4, 5, 6, 8, 6, 4, 2
5 шаг:
A [6] := 2*A[5]
1, 2, 3, 4, 5, 10, 8, 6, 4, 2
6 шаг:
A [5] := 2*A[6]
1, 2, 3, 4, 20, 10, 8, 6, 4, 2
7 шаг:
A [4] := 2*A[7]
1, 2, 3, 16, 20, 10, 8, 6, 4, 2
8 шаг:
A [3] := 2*A[8]
1, 2, 12, 16, 20, 10, 8, 6, 4, 2
9 шаг:
A [2] := 2*A[9]
1, 8, 12, 16, 20, 10, 8, 6, 4, 2
10 шаг:
A [1] := 2*A[10]
4, 8, 12, 16, 20, 10, 8, 6, 4, 2
ответ: 8