Как определить, оптимально ли все пары в массиве имеют одинаковый НОД?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как определить, оптимально ли все пары в массиве имеют одинаковый НОД?

Сообщение Anonymous »

Я решаю следующую задачу соревновательного программирования:

G. GCDland Mystical Arrays

ограничение времени на тест 1 секунда

ограничение памяти на тест 256 мегабайт
В эксцентричном городке GCDland есть живет математик по имени Тео, у которого есть дикая и параноидальная теория заговора. Тео убежден, что в некоторых мистических массивах наибольший общий делитель (НОД) каждой возможной пары чисел всегда один и тот же. Он считает, что эти массивы — это сообщения древней цивилизации, пытающейся связаться с нами посредством чисел.
Друзья Тео думают, что он зашел в тупик, но он полон решимости доказать их неправоту и раскрыть причину. истина, стоящая за этими массивами. Ему нужна ваша помощь, чтобы подтвердить свою теорию. Учитывая массив целых чисел, ваша задача — определить, действительно ли НОД каждой пары чисел в массиве один и тот же. Если теория Тео верна для данного массива, вам следует ее подтвердить; в противном случае вам следует развенчать его.
НОД двух чисел — это наибольшее положительное целое число, которое делит оба числа, не оставляя остатка.
Ввод
Первая строка содержит целое число 𝑁 (2≤𝑁≤100,000), количество элементов в массиве.

Вторая строка содержит 𝑁целые числа 𝐴𝑖(1≤𝐴𝑖≤10 ^7), элементы массива.
Вывод

Выведите «YES», если НОД каждой пары чисел в массиве один и тот же. В противном случае выведите «НЕТ».

Проблему с кодом можно посмотреть здесь.
Это мой код :

Код: Выделить всё

int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}

int solve()
{
int n;
cin >> n;
vector v;

int first, second;
cin >> first >> second;
v.push_back(first);
v.push_back(second);

const int x = gcd(v[0], v[1]);

for (int i = 2; i < n; i ++)
{
int newval;
cin >> newval;
v.push_back(newval);
for (int j = 0; j < i; j++)
{
//cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79104551/how-to-determine-if-all-pairs-in-an-array-have-the-same-gcd-optimally[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»