Найти количество совершенных и простых чисел в последовательности - C (СИ)
Формулировка задачи:
Добрый вечер ,помогите пожалуйста программу написать,я не могу понять даже с чего начать, не могу реализовать : Вводится последовательность целых чисел, 0-конец последовательности.Найти количество совершенных и простых чисел в последовательности ( результатами функций будет: 1-число простое, 0- число непростое,1-число совершенное, 0-нет).
Решение задачи: «Найти количество совершенных и простых чисел в последовательности»
textual
Листинг программы
#include <stdio.h> #include <stdbool.h> bool isPrime (int number); bool isPerfect (int number); int main (void) { int primes, perfects, others, number; primes = perfects = others = 0; printf("Input: "); while(scanf("%i", &number) > 0 && number != 0) { if (isPrime(number)) primes += 1; else if (isPerfect(number)) perfects += 1; else others += 1; } printf("%-10s%6d\n%-10s%6d\n%-10s%6d\n", "Primes:", primes, "Perfects:", perfects, "Others:", others); return 0; } bool isPrime (int number) { if (number != 2 && (number % 2) == 0 || number <= 1) return false; else { int i; for (i = 3; i * i <= number; i += 2) if (number % i == 0) return false; } return true; } bool isPerfect (int number) { if ((number % 2) != 0) return false; int sum = 0; int i; for (i = 1; i <= number / 2; i++) if (number % i == 0) sum += i; return (sum == number) ? true : false; }
Объяснение кода листинга программы
- Объявление функций
isPrime
иisPerfect
, которые будут использоваться для проверки чисел на простоту и совершенство соответственно. - Объявление переменных
primes
,perfects
,others
,number
и инициализация их значений равными 0. - Ввод чисел с помощью цикла
while
, который будет выполняться до тех пор, пока пользователь не введет некорректное значение (например, отрицательное число или ноль), и сохранять введенные числа в переменнойnumber
. - Проверка числа на простоту с помощью функции
isPrime
и, если число является простым, увеличение значения переменнойprimes
на 1. - Проверка числа на совершенство с помощью функции
isPerfect
и, если число является совершенным, увеличение значения переменнойperfects
на 1. - Если число не является ни простым, ни совершенным, увеличение значения переменной
others
на 1. - Вывод количества простых, совершенных и других чисел с помощью функции
printf
. - Вызов функции
isPrime
для проверки числа на простоту. - Вызов функции
isPerfect
для проверки числа на совершенство. - Вывод сообщения об ошибке, если число не является простым или совершенным.
- Возвращение значения 0 из функции
main
, что означает успешный конец работы программы. - Вывод количества простых, совершенных и других чисел.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д