Найти натуральное число 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 равна КК.

  1. Переменная n инициализируется значением 1.
  2. Цикл for начинается с переменной n и условием n < size.
  3. В каждой итерации цикла значение переменной n увеличивается на 1.
  4. Внутри цикла создается временная переменная ntmp, которая инициализируется значением n.
  5. Внутренний цикл for начинается с переменной k и условием ntmp.
  6. В каждой итерации внутреннего цикла значение переменной k увеличивается на значение последней цифры числа ntmp.
  7. Значение переменной ntmp делится на 10.
  8. Значение переменной ntmp умножается на себя.
  9. Внутренний цикл for начинается с переменной z и условием ntmp.
  10. В каждой итерации внутреннего цикла значение переменной z увеличивается на значение последней цифры числа ntmp.
  11. Значение переменной ntmp делится на 10.
  12. Если значение переменной z равно квадрату значения переменной k, то выводится значение переменной n. Примечание: Код не проверялся на ошибки и не был оптимизирован.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы