Посчитать количество совершенных и простых чисел в последовательности (с использованием функций) - 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' не нажимается, программа продолжает выводить запрос.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д