Укажите минимальное натуральное число, при вводе которого этот алгоритм напечатает сначала 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)

Erzhan030 Erzhan030    2   05.06.2021 19:36    1

Ответы
Dronton Dronton  05.07.2021 20:37

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))

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика