题目描述
小明总是陶醉在数论的海洋里,他知道:数论是数学的皇后。而数论的核心,就是质数!
但是现在小明想研究互质问题,a 和 b 互质,即 2 个数的最大公约数是 1,表示为 gcd(a, b) = 1。
现在,有 N 个正整数,从 a1 到 aN,你要找出在 1 到 M 之间,有多少个整数 k能够满足对于任意 ai,都有:
gcd(ai, k) = 1
小明觉得这是一个很神奇的东东,他有点不会做。他希望有一个数论高手可以来帮助他,你是小明心目中的数论高手么?来解决这个问题吧!
输入格式
输入的第一行是 2 个正整数 N 和 M。
输入的第二行是 N 个正整数 a1, a2, ..., aN,空格隔开。
输出格式
输出的第一行表示满足条件的 k 的个数。
接下来若干个,每行一个满足条件的 k,从小到大的顺序。
样例数据1
input
3 12
6 1 5
output
3
1
7
11
显然 1 和所有正整数都是互质的,对于整数 7,我们知道 gcd(6, 7) = 1, gcd(1, 7) =1,
gcd(5, 7) = 1,所以 7 也是满足条件的。另外 gcd(6, 11) = 1, gcd(1, 11) = 1, gcd(5, 11) =1,所以 11 也是满足条件的。
样例数据2
input
3 20
3 5 8
output
6
1
7
11
13
17
19
样例数据3
input
2 15
3 7 9
output
8
1
2
4
5
8
10
11
13
数据范围
对于所有的数据,保证 1 ≤ N ≤ 10^5, 1 ≤ M ≤ 10^6, 1 ≤ ai ≤ 10^6。
数据编号 数据范围
1∼3 N, M, ai ≤ 10^3
4∼6 N ≤ 10^3, M ≤ 10^6, ai ≤ 10^6
7∼10 N ≤ 10^5, M ≤ 10^6, ai ≤ 10^6