#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
// Функция для проверки, является ли число простым
bool isPrime(int n) {
if (n <= 1) return false;
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) return false;
}
return true;
}
// Функция для нахождения среднего арифметического чисел
double calculateAverage(const vector<int>& numbers) {
if (numbers.empty()) return 0;
int sum = 0;
for (int num : numbers) {
sum += num;
}
return static_cast<double>(sum) / numbers.size();
}
// Функция для нахождения минимального простого числа
int findMinPrime(const vector<int>& numbers) {
int minPrime = -1;
for (int num : numbers) {
if (isPrime(num)) {
if (minPrime == -1 || num < minPrime) {
minPrime = num;
}
}
}
return minPrime;
}
// Функция для нахождения максимального числа, не являющегося простым
int findMaxNonPrime(const vector<int>& numbers) {
int maxNonPrime = -1;
for (int num : numbers) {
if (!isPrime(num)) {
if (maxNonPrime == -1 || num > maxNonPrime) {
maxNonPrime = num;
}
}
}
return maxNonPrime;
}
int main() {
vector<int> numbers;
int num;
cout << "Введите последовательность целых чисел (0 для завершения):" << endl;
while (cin >> num && num != 0) {
numbers.push_back(num);
}
if (numbers.empty()) {
cout << "Последовательность пуста!" << endl;
return 0;
}
double average = calculateAverage(numbers);
int minPrime = findMinPrime(numbers);
int maxNonPrime = findMaxNonPrime(numbers);
cout << "Среднее арифметическое: " << average << endl;
if (minPrime != -1) {
cout << "Минимальное простое число: " << minPrime << endl;
} else {
cout << "Простые числа отсутствуют." << endl;
}
if (maxNonPrime != -1) {
cout << "Максимальное число, не являющееся простым: " << maxNonPrime << endl;
} else {
cout << "Все числа простые." << endl;
}
return 0;
}
#include <cmath>
#include <iostream>
using namespace std;
bool prime(int n)
{
if (n < 2) return false;
if (n == 2 || n == 3) return true;
if (n & 1)
{
int i, m = sqrt(n);
for (i = 3; i <= m; i += 2) if (n % i == 0) return false;
return true;
}
else return false;
}
int main()
{
double average = 0.;
int primes = 0, number, n = 0;
while (true)
{
cin >> number;
if (number)
{
++n;
average += number;
if (prime(number)) ++primes;
}
else break;
}
if (n) cout << "average: " << average / n
<< "\nprimes: " << primes <<
"\nnot-primes: " << n - primes << endl;
return 0;
}
Если бы требовалось вывести минимальное число среди простых и максимальное непростое число, то тогда бы могли так и написа́ть! Понятно, что для этого в вышеприведённый код придётся вносить существенные коррективы...