Создать массив типа int на 30 элементов и заполнить его случайными числами от 2 до 99. Проверьте кратность каждого числа каждому числу от 2 до 9 включительно. Введите массивы, которые будут хранить маркеры кратности. Определите «самое кратное число» - число кратное максимальному количеству чисел от 2 до 9 включительно. Напечатайте это число и числа, которым оно кратно
Answers & Comments
#include <iostream>
#include <ctime>
using namespace std;
signed main() {
setlocale(LC_ALL, "Rus");
srand(time(NULL));
int mas[30], multipleMass[30], _maxMultipleCounter, _maxMultipleEl;
cout << "Сгенерированный массив:";
for (size_t i = 0; i < 30; i++)
{
mas[i] = rand() % 99 +2;
multipleMass[i] = 0;
cout << mas[i] << " ";
}
for (size_t i = 0; i < 30; i++)
{
for (size_t j = 2; j < 10; j++)
{
if (mas[i] % j == 0)
multipleMass[i]++;
}
}
cout << endl << "Массив с маркерами кратности:";
for (size_t i = 0; i < 30; i++)
{
cout << multipleMass[i] << " ";
}
_maxMultipleCounter = multipleMass[0];
_maxMultipleEl = mas[0];
for (size_t i = 0; i < 30; i++)
{
if (_maxMultipleCounter < multipleMass[i]) {
_maxMultipleCounter = multipleMass[i];
_maxMultipleEl = mas[i];
}
}
/*Если чисел несколько, то выводим первое нам попавшееся*/
cout << endl << "Самое кратное число - " << _maxMultipleEl << " число кратных ему чисел в диапазоне - " << _maxMultipleCounter << endl;
cout << "Сами эти числа: ";
for (int i = 2; i < 10; i++)
if (_maxMultipleEl % i == 0)
cout << i << " ";
return 0;
}