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