Найти совершенные числа в интервале от 1 до n - C (СИ)

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

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

Найти совершенные числа в интервале от 1 до n. Совершенное число - натуральное число, равное сумме всех своих собственных делителей (т. е. всех положительных делителей, отличных от самого числа). Ввод с консоли. Вводится одно целое число. Ограничения: 1≤n≤10000 время работы программы не более 3 с. Вывод в консоль целых чисел, являющихся совершенными. Спасибо

Решение задачи: «Найти совершенные числа в интервале от 1 до n»

textual
Листинг программы
  1. #include <stdbool.h>
  2.  
  3. bool is_perfect(int n)
  4. {
  5.     int sum = 0;
  6.     for( int i = 1; i < n; ++i ) {
  7.         if( n % i == 0 ) {
  8.             sum += i;
  9.         }
  10.     }
  11.     return sum == n;
  12. }

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

В данном коде определена функция is_perfect, которая проверяет, является ли число n совершенным. Совершенное число - это натуральное число, которое равно сумме всех своих делителей, кроме самого числа. В коде используется цикл for, который начинается с 1 и идет до n-1. На каждой итерации цикла проверяется, делится ли n на текущее значение i без остатка (если да, то число является делителем n). Если делится, то к переменной sum прибавляется значение i. После завершения цикла, функция возвращает true, если сумма всех найденных делителей равна n, и false в противном случае. Таким образом, если число n является совершенным, то функция вернет true, иначе - false.

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


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

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

7   голосов , оценка 4.429 из 5

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

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

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