Функция нахождения совершенного числа - C (СИ)

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

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

Народ, помогите написать программу с функцией нахождения совершенного числа в диапазоне от 1 до 1000.

Решение задачи: «Функция нахождения совершенного числа»

textual
Листинг программы
#include <math.h>
 
int isperfect(int n)
{
    int sum = 1;
    for (int i = 2; i < sqrt(n); i++)
        if (!(n % i))
            sum += i + n / i;
    return !(sum - n);
}
 
int main()
{
    for (int i = 2; i <= 1000; i++)
        if (isperfect(i))
            printf("%d\n", i);
}

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

  1. Подключение стандартной библиотеки math.h необходимо для использования функции sqrt(n), которая вычисляет квадратный корень из числа n.
  2. В функции isperfect(int n) входным параметром является число n.
  3. Переменная sum инициализируется значением 1.
  4. В цикле for перебираются все числа от 2 до квадратного корня из n.
  5. Выражение !(n % i) проверяет, делится ли n на i без остатка.
  6. Если условие выполняется, то к сумме sum прибавляются значения i и n/i.
  7. Возвращаемое значение функции isperfect(int n) — это разность между суммой sum и n.
  8. В функции main() с помощью цикла for перебираются все числа от 2 до 1000.
  9. Если функция isperfect(int n) возвращает значение 1, то число n выводится на экран с помощью функции printf().
  10. Таким образом, данный код находит все совершенные числа до 1000 и выводит их на экран.

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


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

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

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