Сегодня Пари и Арий играют в игру Остатки. Пари выбирает два положительных целых числа x и k и говорит Арию k (а x не говорит).
Сегодня Пари и Арий играют в игру Остатки.
Пари выбирает два положительных целых числа 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» (без кавычек) в противном случае.
//Получилось странное, но вроде бы жизнеспособное //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.