Найти натуральное число N, сумма цифр которого равна К, а сумма цифр N*N равна К*К - C (СИ)
Формулировка задачи:
Найти натуральное число N, сумма цифр которого равна К, а сумма цифр N*N равна К*К.
Помогите,прошу!!!
Решение задачи: «Найти натуральное число N, сумма цифр которого равна К, а сумма цифр N*N равна К*К»
textual
Листинг программы
for(n=1; n<size; n++) { ntmp = n; for(k=0; ntmp; ntmp /= 10) k+= ntmp%10; ntmp = n*n; for(z=0; ntmp; ntmp /= 10) z+= ntmp%10; if (z == k*k) printf("n=%d\n", n); }
Объяснение кода листинга программы
В данном коде ищется натуральное число N, сумма цифр которого равна К, а сумма цифр NN равна КК.
- Переменная
n
инициализируется значением 1. - Цикл
for
начинается с переменнойn
и условиемn < size
. - В каждой итерации цикла значение переменной
n
увеличивается на 1. - Внутри цикла создается временная переменная
ntmp
, которая инициализируется значениемn
. - Внутренний цикл
for
начинается с переменнойk
и условиемntmp
. - В каждой итерации внутреннего цикла значение переменной
k
увеличивается на значение последней цифры числаntmp
. - Значение переменной
ntmp
делится на 10. - Значение переменной
ntmp
умножается на себя. - Внутренний цикл
for
начинается с переменнойz
и условиемntmp
. - В каждой итерации внутреннего цикла значение переменной
z
увеличивается на значение последней цифры числаntmp
. - Значение переменной
ntmp
делится на 10. - Если значение переменной
z
равно квадрату значения переменнойk
, то выводится значение переменнойn
. Примечание: Код не проверялся на ошибки и не был оптимизирован.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д