time limit per test1 second

memory limit per test256 megabytes

inputstandard input

outputstandard output

Today Pari and Arya are playing a game called Remainders.

Pari chooses two positive integer x and k, and tells Arya k but not x. Arya have to find the value . There are n ancient numbers c1, c2, …, cn and Pari has to tell Arya if Arya wants. Given k and the ancient values, tell us if Arya has a winning strategy independent of value of x or not. Formally, is it true that Arya can understand the value for any positive integer x?

Note, that means the remainder of x after dividing it by y.

Input

The first line of the input contains two integers n and k (1 ≤ n,  k ≤ 1 000 000) — the number of ancient integers and value k that is chosen by Pari.

The second line contains n integers c1, c2, …, cn (1 ≤ ci ≤ 1 000 000).

Output

Print “Yes” (without quotes) if Arya has a winning strategy independent of value of x, or “No” (without quotes) otherwise.

Examples

input

4 5

2 3 5 12

output

Yes

input

2 7

2 3

output

No

Note

In the first sample, Arya can understand because 5 is one of the ancient numbers.

In the second sample, Arya can’t be sure what is. For example 1 and 7 have the same remainders after dividing by 2 and 3, but they differ in remainders after dividing by 7.

【题解】



题意:

让你猜x % k 的值

但是只告诉你k以及一系列x % ci;

做法:

根据中国剩余定理:

如果知道了

x % a;

x % b;

x % c;

x % d;

····

且a,b,c,d互质;

那么x % (abcd)就可以确定了;

那么因为要求x % k

所以对k进行质数分解;

各个质数肯定是互质的;

分解成k = p1^k1*p2^k2…pn^kn的形式

然后你还得知道这么一个东西

如果

a 是 b的倍数,即a %b==0

那么

x % a = y1

x % b = y2

那么y2 = y1 % b;



x = t1*a+ y1 ···①

x = t2*b + y2

因为a是b的倍数

所以①式总可以写成

x = t1*t3*b + y1的形式

显然y1 再对b取模就是y2了;

回到质数分解后

分解成k = p1^k1*p2^k2…pn^kn的形式

我们想知道

x % p1^k1

x % p2^k2

….

x % pn^kn

这样我们就能知道x %k了

根据上面的分析,我们只要在所给的ci里面找pi^ki的倍数就好了;

如果对于所有的t∈[1..n]总有数字ci是pt^kt的倍数;

因为如果ci是pt^kt的倍数,则x % ci知道了,相应的x%(pt^kt)按照上面的分析也能知道了->(x%ci) % (pt^kt)

既然知道了所有的x%pt^kt

那么就能求出x%k了;

#include <cstdio>

int n, k,cnt = 0;
int num[10000];
bool cover[10000] = { 0 }; int main()
{
//freopen("F:\\rush.txt", "r", stdin);
scanf("%d%d", &n, &k);
for (int i = 2;i <= k;i++)
if ((k%i) == 0)
{
int now = 1;
while ((k%i) == 0)
{
now = now*i;
k /= i;
}
num[++cnt] = now;//存的是p1^k1..pcnt^kcnt
}
for (int i = 1; i <= n; i++)
{
int x;
scanf("%d", &x);
for (int j = 1; j <= cnt; j++)
if (x % num[j] == 0)//如果是的x%pt^kt倍数,那么x%pt^kt就能求出来了
cover[j] = true;
}
for (int j = 1;j <= cnt;j++)
if (!cover[j])
{
puts("NO");
return 0;
}
puts("YES");
return 0;
}

【16.56%】【codeforces 687B】Remainders Game的更多相关文章

  1. 【 BowWow and the Timetable CodeForces - 1204A 】【思维】

    题目链接 可以发现 十进制4 对应 二进制100 十进制16 对应 二进制10000 十进制64 对应 二进制1000000 可以发现每多两个零,4的次幂就增加1. 用string读入题目给定的二进制 ...

  2. 【16.23%】【codeforces 586C】Gennady the Dentist

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  3. 【codeforces 807D】Dynamic Problem Scoring

    [题目链接]:http://codeforces.com/contest/807/problem/D [题意] 给出n个人的比赛信息; 5道题 每道题,或是没被解决->用-1表示; 或者给出解题 ...

  4. 【codeforces 821E】Okabe and El Psy Kongroo

    [题目链接]:http://codeforces.com/problemset/problem/821/E [题意] 一开始位于(0,0)的位置; 然后你每次可以往右上,右,右下3走一步; (x+1, ...

  5. 【81.82%】【codeforces 740B】Alyona and flowers

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  6. 【23.39%】【codeforces 558C】Amr and Chemistry

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  7. 【42.59%】【codeforces 602A】Two Bases

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  8. 【77.78%】【codeforces 625C】K-special Tables

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  9. 【codeforces 755D】PolandBall and Polygon

    time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

随机推荐

  1. Altium Designer中敷铜和板子一样大

  2. [D3] Build a Scatter Plot with D3 v4

    Scatter plots, sometimes also known as bubble charts, are another common type of visualization. They ...

  3. IIS服务器设置http自动跳转https方法

    很多站长在部署SSL证书后,网站实现https加密访问,但考虑到用户习惯了http访问,很多外链也是http访问形式,所以需要在IIS服务器配置http自动跳转https,避免用户通过http访问不到 ...

  4. ElasticSearch 2.4

    ES是一个基于Lucene的分布式全文搜索服务器,和SQL Server的全文索引(Fulltext Index)有点类似,都是基于分词和分段的全文搜索引擎,具有分词,同义词,词干查询的功能,但是ES ...

  5. Spring Boot 2.x 使用 jpa 连接 mysql

    在spring boot网站上生成一个项目,如图: 我使用的是Maven项目,java使用是jdk8(spring boot 2.x必须要jdk8及以上),dependencies分别输入选择 web ...

  6. iTestin云测工具

    软件概述 iTestin是免费服务移动App开发者的真机自动化云测试客户端工具.基于真实的智能终端设备录制一个测试脚本然后运行,并输出运行结果.覆盖Android和iOS两大设备平台,支持Pad/Ph ...

  7. UIBarButtonItem使用

    1 self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBar ...

  8. [TypeScript] Interface and Class

    When to use Interface and when to use Class. Let's see one example: export interface Lesson { course ...

  9. POJ 2785 4 Values whose Sum is 0 Hash!

    http://poj.org/problem?id=2785 题目大意: 给你四个数组a,b,c,d求满足a+b+c+d=0的个数 其中a,b,c,d可能高达2^28 思路: 嗯,没错,和上次的 HD ...

  10. WIFI 状态栏显示的wifi信号强度与wifisetting列表不一致

    [DESCRIPTION] 状态栏显示的wifi信号强度与wifisetting列表不一致(不同步) [ANALYSIS] 1.apk都是接收RSSI_CHANGED intent,并调用WifiMa ...