Дано натуральное число N. Определить является ли оно совершенным - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дано натуральное число N. Определить является ли оно совершенным( совершенное число N равно сумме всех своих делителей включая 1 не считая само N например 6=1+2+3)

Решение задачи: «Дано натуральное число N. Определить является ли оно совершенным»

textual
Листинг программы
  1. int perfnum(int n) {
  2.     int sum = 0, val = n;
  3.  
  4.     while (--val > 0) {
  5.         if ((n % val) == 0) {
  6.             sum += val;
  7.         }
  8.     }
  9.  
  10.     return (sum == n);
  11. }

Объяснение кода листинга программы

В данном коде функция perfnum(int n) принимает натуральное число N и проверяет, является ли оно совершенным. Совершенное число — это натуральное число, равное сумме всех своих делителей, кроме самого числа, взятого в отрицательное число. Внутри функции происходит следующее:

  1. Инициализируется переменная sum со значением 0 и переменная val со значением n.
  2. В цикле while перебираются все делители числа n, начиная с самого большого (val устанавливается в n-1 и уменьшается на 1 на каждой итерации).
  3. Для каждого делителя проверяется, равен ли остаток от деления n на этот делитель нулю. Если да, то к сумме sum прибавляется значение делителя.
  4. По завершении цикла возвращается значение переменной sum, которое сравнивается с n. Если они равны, то число n является совершенным. Пример вызова функции: int main() { int n; printf(Введите натуральное число:); scanf(%d, &n); if (perfnum(n)) { printf(%d - совершенное число\n, n); } else { printf(%d - несовершенное число\n, n); } return 0; }

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


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

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

10   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы