Функция нахождения совершенного числа - 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); }
Объяснение кода листинга программы
- Подключение стандартной библиотеки math.h необходимо для использования функции sqrt(n), которая вычисляет квадратный корень из числа n.
- В функции isperfect(int n) входным параметром является число n.
- Переменная sum инициализируется значением 1.
- В цикле for перебираются все числа от 2 до квадратного корня из n.
- Выражение !(n % i) проверяет, делится ли n на i без остатка.
- Если условие выполняется, то к сумме sum прибавляются значения i и n/i.
- Возвращаемое значение функции isperfect(int n) — это разность между суммой sum и n.
- В функции main() с помощью цикла for перебираются все числа от 2 до 1000.
- Если функция isperfect(int n) возвращает значение 1, то число n выводится на экран с помощью функции printf().
- Таким образом, данный код находит все совершенные числа до 1000 и выводит их на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д