Укажите минимальное натуральное число, при вводе которого этот алгоритм напечатает сначала 2 потом 2 .
Pascal
var x, a, b: longint;
begin
readln(x);
a := 0; b := 0;
while x > 0 do begin
if x mod 2 = 0 then
a := a + x mod 7
else
b := b + 1;
x := x div 7;
end;
writeln(a); write(b);
end.
C++
#include
using namespace std;
int main()
{
int x, a, b;
cin >> x;
a = 0; b = 0;
while (x > 0) {
if (x%2 == 0) a = a + x % 7;
else b = b + 1;
x = x / 7;
}
cout << a << endl << b;
return 0;
}
Python
x = int(input())
a=0; b=0
while x > 0:
if x%2 == 0:
a = a + x % 7
else:
b = b + 1
x = x // 7
print(a, b)
Answers & Comments
Ответ:
105
Объяснение:
Обернем эту программу в другую, которая будет подавать на ее вход натуральные числа в порядке возрастания до тех пор, пока в результате вычислений не получится пара (2, 2):
user_input = 1
while True:
x = user_input
a = 0; b = 0
while x > 0:
if x % 2 == 0:
a = a + x % 7
else:
b = b + 1
x = x // 7
print(user_input, a, b)
if a == 2 and b == 2:
break
user_input = user_input + 1
print('Found it: ' + str(user_input))