C++: 22 - Анализ программы с циклами и ветвлениями

1. Ниже записана программа. Получив на вход число x, эта программа печатает два числа. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 7.
  int x, a, b;
cin >> x;
a = 0; b = 1;
while( x > 0 ) {
a = a + 1;
b = b * (x % 10);
x = x / 10;
}
cout << a << " " << b;
Ответ: 
2. Ниже записана программа. Получив на вход число x, эта программа печатает два числа. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 7.
  int x, L, M;
cin >> x;
L = 0; M = 0;
while( x > 0 ) {
L = L + 1;
M = M + x % 10;
x = x / 10;
}
cout << L << " " << M;
Ответ: 
3. Ниже записана программа. Получив на вход число x, эта программа печатает два числа. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 8.
  int x, L, M;
cin >> x;
L = 0; M = 0;
while( x > 0 ) {
L = L + 1;
if( x % 2 == 0 )
M = M + x % 10;
x = x / 10;
}
cout << L << " " << M;
Ответ: 
4. Ниже записана программа. Получив на вход число x, эта программа печатает два числа. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 6.
  int x, a, b;
cin >> x;
a = 0; b = 1;
while( x > 0 ) {
a = a + 1;
b = b * (x % 6);
x = x / 6;
}
cout << a << " " << b;
Ответ: 
5. Ниже записана программа. Получив на вход число x, эта программа печатает два числа. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 6, а потом 5.
  int x, a, b;
cin >> x;
a = 0; b = 0;
while( x > 0 ) {
a = a + 2;
b = b + (x % 10);
x = x / 10;
}
cout << a << " " << b;
Ответ: 
6. Ниже записана программа. Получив на вход число x, эта программа печатает два числа, a и b. Укажите наибольшее из чисел , при вводе которых алгоритм печатает сначала 2, а потом 8.
  int x, a, b;
cin >> x;
a = 0;
b = 1;
while( x > 0 ) {
a = a + 1;
b = b * (x % 100);
x = x / 100;
cout << a << " " << b;
Ответ: 
7. Ниже записан алгоритм. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 11.
  int x, a, b;
cin >> x;
a = 0; b = 1;
while( x > 0 ) {
a = a + 1;
b = b*(x % 1000);
x = x / 1000;
}
cout << a << " " << b;
Ответ: 
8. Ниже записан алгоритм. Сколько существует таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 12?
  int x, a, b;
cin >> x;
a = 0; b = 0;
while( x > 0 ) {
a = a + 1;
b = b + (x % 100);
x = x / 100;
}
cout << a << " " << b;
Ответ: 
9. Получив на вход число x, этот алгоритм печатает число M. Известно, что x>100. Укажите наименьшее такое (т. е. большее 100) число x, при вводе которого алгоритм печатает 30.
  int x, L, M;
cin >> x;
L = x - 30;
M = x + 30;
while( L != M )
if( L > M )
L = L - M;
else
M = M - L;
cout << M;
Ответ: 
10. Получив на вход число x, этот алгоритм печатает число M. Известно, что x>100. Укажите наименьшее такое (т.е. большее 100) число x, при вводе которого алгоритм печатает 26.
  int x, L, M;
cin >> x;
L = x;
M = 65;
if( L % 2 == 0 )
M = 52;
while( L != M )
if( L > M )
L = L - M;
else
M = M - L;
cout << M;
Ответ: