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

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

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

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

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

textual
Листинг программы
  1. #pragma hdrstop
  2. #pragma argsused
  3.  
  4. #include <stdio.h>
  5. #include <tchar.h>
  6.  
  7.  
  8. int isProstoe(int number)
  9. {
  10.     int i;
  11.     if (number == 2 || number==3)
  12.     {
  13.         return 1;
  14.     }
  15.     if (number == 1) {
  16.         return 0;
  17.     }
  18.     for (i = 2; i <= number/2; i++)
  19.     {
  20.         if (number % i == 0)
  21.             return 0;
  22.  
  23.     }
  24.     return 1;
  25. }
  26. int isSovershennoe(int number)
  27. {
  28.     int i;
  29.     int sum = 0;
  30.     sum++;
  31.  
  32.     for (i = 2; i <= number/2; i++)
  33.     {
  34.         if (number % i == 0)
  35.             sum+=i;
  36.  
  37.     }
  38.     if (sum == number && number != 1) {
  39.         return 1;
  40.     }
  41.     return 0;
  42. }
  43.  
  44. int _tmain(int argc, _TCHAR* argv[])
  45. {
  46.     int N;
  47.     char timeout;
  48.     int i;
  49.     int numbers[1024];
  50.     int countProstoe = 0;
  51.     int countSovershennoe = 0;
  52.     printf("Please Enter N: ");
  53.     scanf("%d", &N);
  54.     printf("Please Enter %d numbers...\n\r", N);
  55.     for (i = 0; i < N; i++) {
  56.         scanf("%d", &numbers[i]);
  57.         if (isProstoe(numbers[i])) {
  58.              countProstoe++;
  59.         }
  60.         if (isSovershennoe(numbers[i])) {
  61.             countSovershennoe++;
  62.         }
  63.     }
  64.     printf("Sovershennych chisel: %d\n\r", countSovershennoe);
  65.     printf("Prostych chisel: %d\n\r", countProstoe);
  66.     //Задержка экрана
  67.     printf("Please Press Enter symbol 'e'...");
  68.     while (1)
  69.     {
  70.         scanf("%c", &timeout);
  71.         if (timeout == 'e') break;
  72.     }
  73.     return 0;
  74. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы