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

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

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

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

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

textual
Листинг программы
#include <stdbool.h>
 
bool is_perfect(int n)
{
    int sum = 0;
    for( int i = 1; i < n; ++i ) {
        if( n % i == 0 ) {
            sum += i;
        }
    }
    return sum == n;
}

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

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

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


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

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

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