Посчитать количество совершенных и простых чисел в последовательности (с использованием функций) - C (СИ)

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

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

Помогите с программой , пожалуйста ) Условие : Вводиться последовательность из N целых положительных элементов. Посчитать количество совершенных и простых чисел в последовательности. Буду очень благодарен )

Решение задачи: «Посчитать количество совершенных и простых чисел в последовательности (с использованием функций)»

textual
Листинг программы
#pragma hdrstop
#pragma argsused
 
#include <stdio.h>
#include <tchar.h>
 
 
int isProstoe(int number)
{
    int i;
    if (number == 2 || number==3)
    {
        return 1;
    }
    if (number == 1) {
        return 0;
    }
    for (i = 2; i <= number/2; i++)
    {
        if (number % i == 0)
            return 0;
 
    }
    return 1;
}
int isSovershennoe(int number)
{
    int i;
    int sum = 0;
    sum++;
 
    for (i = 2; i <= number/2; i++)
    {
        if (number % i == 0)
            sum+=i;
 
    }
    if (sum == number && number != 1) {
        return 1;
    }
    return 0;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    int N;
    char timeout;
    int i;
    int numbers[1024];
    int countProstoe = 0;
    int countSovershennoe = 0;
    printf("Please Enter N: ");
    scanf("%d", &N);
    printf("Please Enter %d numbers...\n\r", N);
    for (i = 0; i < N; i++) {
        scanf("%d", &numbers[i]);
        if (isProstoe(numbers[i])) {
             countProstoe++;
        }
        if (isSovershennoe(numbers[i])) {
            countSovershennoe++;
        }
    }
    printf("Sovershennych chisel: %d\n\r", countSovershennoe);
    printf("Prostych chisel: %d\n\r", countProstoe);
    //Задержка экрана
    printf("Please Press Enter symbol 'e'...");
    while (1)
    {
        scanf("%c", &timeout);
        if (timeout == 'e') break;
    }
    return 0;
}

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

  1. Функция isProstoe проверяет, является ли число простым. Если число равно 2 или 3, функция возвращает 1. Если число равно 1, функция возвращает 0. В противном случае, функция проверяет, делится ли число на какое-либо число от 2 до корня из этого числа (включительно). Если делится, функция возвращает 0. Если не делится ни на одно число, функция возвращает 1.
  2. Функция isSovershennoe проверяет, является ли число совершенным. Функция начинает с инициализации переменной sum равной 1 (т.к. любое число больше 1 является совершенным). Затем функция проверяет, делится ли число на какое-либо число от 2 до корня из этого числа (включительно). Если делится, функция добавляет это число к sum. Если sum равно числу и число не равно 1, функция возвращает 1. Если sum не равно числу, функция возвращает 0.
  3. В функции _tmain сначала объявляются переменные и массив чисел. Затем пользователю предлагается ввести число N, которое будет использоваться для определения количества чисел для проверки. После ввода числа, пользователю предлагается ввести N чисел. Затем происходит проверка каждого числа на простоту и совершенство с помощью функций isProstoe и isSovershennoe. Количество простых и совершенных чисел сохраняется в переменных countProstoe и countSovershennoe соответственно. Затем выводится количество совершенных чисел и количество простых чисел. После этого пользователю предлагается нажать символ 'e' для выхода из программы. Если символ 'e' не нажимается, программа продолжает выводить запрос.

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


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

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

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