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

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

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

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

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

textual
Листинг программы
  1. #include <math.h>
  2.  
  3. int isperfect(int n)
  4. {
  5.     int sum = 1;
  6.     for (int i = 2; i < sqrt(n); i++)
  7.         if (!(n % i))
  8.             sum += i + n / i;
  9.     return !(sum - n);
  10. }
  11.  
  12. int main()
  13. {
  14.     for (int i = 2; i <= 1000; i++)
  15.         if (isperfect(i))
  16.             printf("%d\n", i);
  17. }

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

  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

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

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

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