Найти количество совершенных и простых чисел в последовательности - 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;
}

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

  1. Объявление функций isPrime и isPerfect, которые будут использоваться для проверки чисел на простоту и совершенство соответственно.
  2. Объявление переменных primes, perfects, others, number и инициализация их значений равными 0.
  3. Ввод чисел с помощью цикла while, который будет выполняться до тех пор, пока пользователь не введет некорректное значение (например, отрицательное число или ноль), и сохранять введенные числа в переменной number.
  4. Проверка числа на простоту с помощью функции isPrime и, если число является простым, увеличение значения переменной primes на 1.
  5. Проверка числа на совершенство с помощью функции isPerfect и, если число является совершенным, увеличение значения переменной perfects на 1.
  6. Если число не является ни простым, ни совершенным, увеличение значения переменной others на 1.
  7. Вывод количества простых, совершенных и других чисел с помощью функции printf.
  8. Вызов функции isPrime для проверки числа на простоту.
  9. Вызов функции isPerfect для проверки числа на совершенство.
  10. Вывод сообщения об ошибке, если число не является простым или совершенным.
  11. Возвращение значения 0 из функции main, что означает успешный конец работы программы.
  12. Вывод количества простых, совершенных и других чисел.
  13. Конец программы.

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


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

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

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