Краткое пояснение: Программа вычисляет сумму остатков от деления числа на 2, пока число не станет нулем.
Пошаговое решение:
- Ввод: n = 2017
- Инициализация: s = 0
- Цикл: while n != 0:
- Итерация 1:
- s = 0 + 2017 % 2 = 1
- n = 2017 // 2 = 1008
- Итерация 2:
- s = 1 + 1008 % 2 = 1
- n = 1008 // 2 = 504
- Итерация 3:
- s = 1 + 504 % 2 = 1
- n = 504 // 2 = 252
- Итерация 4:
- s = 1 + 252 % 2 = 1
- n = 252 // 2 = 126
- Итерация 5:
- s = 1 + 126 % 2 = 1
- n = 126 // 2 = 63
- Итерация 6:
- s = 1 + 63 % 2 = 2
- n = 63 // 2 = 31
- Итерация 7:
- s = 2 + 31 % 2 = 3
- n = 31 // 2 = 15
- Итерация 8:
- s = 3 + 15 % 2 = 4
- n = 15 // 2 = 7
- Итерация 9:
- s = 4 + 7 % 2 = 5
- n = 7 // 2 = 3
- Итерация 10:
- s = 5 + 3 % 2 = 6
- n = 3 // 2 = 1
- Итерация 11:
- s = 6 + 1 % 2 = 7
- n = 1 // 2 = 0
- Вывод: s = 7
Ответ: 7