Сегодня Пари и Арий играют в игру Остатки. Пари выбирает два положительных целых числа x...

0 голосов
26 просмотров

Сегодня Пари и Арий играют в игру Остатки.

Пари выбирает два положительных целых числа x и k и говорит Арию k (а x не говорит). Арий должен найти x mod k . Известны n древних чисел c1, c2, ..., cn, и для каждого из них Арий может спросить у Пари x mod c . Для данного k и набора древних чисел определите, правда ли, что Арий выигрывает для любого значения x?



Входные данные

В первой строке входных данных записаны два целых числа n и k (1 ≤ n, k ≤ 1 000 000) — количество древних чисел и значение k, выбранное Пари.

Во второй строке записаны n целых чисел c1, c2, ..., cn (1 ≤ ci ≤ 1 000 000).


Выходные данные

Выведите «Yes» (без кавычек), если Арий может выиграть для любого x, и «No» (без кавычек) в противном случае.


Информатика | 26 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

//Получилось странное, но вроде бы жизнеспособное
//Pascal ABC.NET 3.1  сборка 1219

Var
 arr,arc:array of integer;
 k,n,i:integer;
begin
readln(n);
setlength(arc,n+1);
readln(k);
setlength(arr,k);
for i:=1 to n do
 begin
  readln(arc[i]);
  inc(arr[arc[i] mod k]);
 end;
for i:=0 to k-1 do
if arr[i]=0 then
 begin
  writeln('No');
  exit;
 end;
writeln('Yes');
end.

(38.6k баллов)