Даны N положительных целых чисел, которые не делятся ни на какие простые числа, кроме 2 и 3. Удалить из массива числа так, чтобы из любых двух оставшихся одно число делилось на другое.
Думал над тем, как реализовать цикл нахождения простых чисел.
Насчет массивов, я знаю что можно было использовать динамический массив, просто в университете требуют использовать пока этот метод, до тех пор, пока мы до них(динамических массивов) не дойдем.
Вот так пробовал реализовать(хотел найти сначала все простые числа от 4 до текущего числа, потом сделать проверку чтобы из всех простых чисел данное число делилось только на 2 и 3):
srand((unsigned)time(0));
const int maxLength = 100;
int array[maxLength] = { 0 };
int a_length = 101;
while (a_length > maxLength)
{
std::cout << "Enter the length of array (less than 100): ";
std::cin >> a_length;
}
int number = 0;
int simple_numbers[maxLength];
int simple_length = 0;
int marker_simple = 0;
int marker_number = 0;
for (int i = 0; i < a_length; i++)
a: {
number = rand() % 101;
if (number % 2 == 0 && number % 3 == 0 && number != 0)
{
// find all simple numbers from j to number
for (int j = 4; j < number; j++)
{
int k;
for (k = 2; k < j; k++)
if (j % k == 0)
{
j++;
k = 2;
marker_simple = 0;
}
else
marker_simple++;
if (marker_simple != j - k)
{
simple_length++;
simple_numbers[simple_length - 1] = j;
}
}
//check: if number devide to anyone
//simple number besides the 2 and 3 than change the number
int z;
for (z = 0; z < simple_length; z++)
{
if (number % simple_numbers[z] == 0)
goto a;
else
marker_number++;
}
if (marker_number != simple_length - z)
array[i] = number;
}
else
{
i--;
continue;
}
}
Проверка на то, что число вида 2^p*3^q
(например - 12,27,72,64):
while (n%2==0)
n/=2;
while (n%3==0)
n/=3;
if (n==1) - ДА!
Задача в целом же не полностью определена - если достаточно найти любое подмножество - просто ищем пару чисел, одно из которых делится на другое.
Если же нужно найти максимальное подмножество - это выглядит как задача о максимальной клике на графе
, и сложновато для текущего учебного уровня (например, можно использовать алгоритм Брона-Кербоша)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть файл в котором больше 3к строк, и нужно их отсортировать по количеству символовМой код:
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Мне надо повторить байт-код из языка JavaЕсли скомпилировать Java и открыть