Найти совершенные числа в интервале от 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д