Как найти элементы массива, что лежат на промежутке

Написать программу, которая будет искать общие делители на промежутке. Программа должна получить от пользователя два массива размерности от 1 до 10. Предусмотреть возможность заполнения из консоли вручную или автозаполнение массивов значениями от 1 до 100.

Найти все элементы, лежащие на промежутке между последним элементом первого массива и первым элементом второго массива (включая эти элементы) и которые одновременно делятся на все элементы первого массива и делителями всех элементов второго массива. Результатом работы должен быть вывод найденных элементов

#include<iostream>
using namespace std;
int gcd(int a, int b) {
    return (a == 0) ? b: gcd(b % a, a);
}
 int main(){
    float product = 1, a, b;
    int sizeA, sizeB;
    cout << "vvedit rozmir 1 mas: ";
    cin >> sizeA;
    cout << "vvedit rozmir 2 mas: ";
    cin >> sizeB;
    int *arrA = new int[sizeA];
    int *arrB = new int[sizeB];
    cout << "\n\n 1 mas: ";
    for (int x = 0; x < sizeA; x++)
    {
        arrA[x] = rand() % 99 + 1;
        cout << arrA[x] << " ";
        if (arrA[x] > b || arrA[x] < a) {

               product *= arrA[x];

        }
    }
 cout << "\n\n 2 mas: ";
    for (int x = 0; x < sizeB; x++)
    {
        arrB[x] = rand() % 99 + 1;
        cout << arrB[x] << " ";
                    if (arrB[x] > b || arrB[x] < a) {
                           product *= arrB[x];
                    }
}
}

написала сам массив, выводит правильно, но не выходит написать часть кода, где требуется найти все элементы, лежащие на промежутке между последним элементом первого массива и первым элементом второго массива (включая эти элементы) и которые одновременно делятся на все элементы первого массива и делителями всех элементов второго массива. [1]: https://i.stack.imgur.com/cCcMm.jpg


Ответы (1 шт):

Автор решения: Harry

Как-то вот это Найти все элементы, лежащие на промежутке между последним элементом первого массива и первым элементом второго массива (включая эти элементы) и которые одновременно делятся на все элементы первого массива и делителями всех элементов второго массива. мутно изложено.

Формально примерно такой код (писал не компилируя, если где описка - простите...)

for(int n = arrA[sizeA-1]; n <= arrB[sizeB-1]; ++n)
{
    bool ok = true;
    for(int i = 0; i < sizeA; ++i)
        if (n%arrA[i]) { ok = false; break; }
    if (!ok) continue;
    for(int i = 0; i < sizeB; ++i)
        if (arrB[i]%n) { ok = false; break; }
    if (!ok) continue;

    cout << n << "\n";
}

но что-то мне представляется крайне низкой вероятность найти такие значения (не элементы... что вообще такое "элементы" между двумя массивами?)

→ Ссылка