N div 10 - это результат отбрасывания последней цифры из N,
т.е. в результате S будет содержать сумму цифр N
Сама же программа считает сумму цифр числа S, затем сумму цифр получившегося числа, и т.д., пока не получится одна цифра.
Кажется, такую цифру называют "цифровым корнем" числа, но на самом деле в десятичной системе счисления это просто остаток от деления на 9.
(поскольку (10*a + b) mod 9 = (9*a + a + b) mod 9 = (a+b) mod 9)
Для вывода 0 и 7 на вход надо подать число S = 7
Для вывода 1 и 7 на вход нужно подать число >= 10 с суммой цифр = 7, минимальным таким числом является 16.
Для вывода 2 и 7 на вход нужно подать такое число, что если сумму его цифр передать на вход, будет выведено 1 и 7. Т.е. сумма цифр будет по крайней мере не меньше 16, значит само число не меньше 79 (это наименьшее число, сумма цифр которых >= 16).
Для вывода 3 и 7 нужно подать число, сумма цифр которого при передаче на вход дас результат 2 и 7, т.е. сумма цифр не меньше 79, тогда само число не меньше 799999999 (наименьшее число с суммой цифр >= 79).
Получаем, что число S = 799999999 дает требуемый вывод, и не существует чисел меньше, которые бы тоже давали такой результат (показано ранее + можно дополнительно проверить программно, перебирая всевозможные S, занимает несколько минут).
Пока N > 0
S := S + N mod 10
N := N div 10
N mod 10 - это последняя цифра числа N,
N div 10 - это результат отбрасывания последней цифры из N,
т.е. в результате S будет содержать сумму цифр N
Сама же программа считает сумму цифр числа S, затем сумму цифр получившегося числа, и т.д., пока не получится одна цифра.
Кажется, такую цифру называют "цифровым корнем" числа, но на самом деле в десятичной системе счисления это просто остаток от деления на 9.
(поскольку (10*a + b) mod 9 = (9*a + a + b) mod 9 = (a+b) mod 9)
Для вывода 0 и 7 на вход надо подать число S = 7
Для вывода 1 и 7 на вход нужно подать число >= 10 с суммой цифр = 7, минимальным таким числом является 16.
Для вывода 2 и 7 на вход нужно подать такое число, что если сумму его цифр передать на вход, будет выведено 1 и 7. Т.е. сумма цифр будет по крайней мере не меньше 16, значит само число не меньше 79 (это наименьшее число, сумма цифр которых >= 16).
Для вывода 3 и 7 нужно подать число, сумма цифр которого при передаче на вход дас результат 2 и 7, т.е. сумма цифр не меньше 79, тогда само число не меньше 799999999 (наименьшее число с суммой цифр >= 79).
Получаем, что число S = 799999999 дает требуемый вывод, и не существует чисел меньше, которые бы тоже давали такой результат (показано ранее + можно дополнительно проверить программно, перебирая всевозможные S, занимает несколько минут).