#2617. 互质(慈溪2021第3题)

互质(慈溪2021第3题)

Description

小明总是陶醉在数论的海洋里,他知道:数论是数学的皇后。而数论的核心,就是质数!
但是现在小明想研究互质问题,a 和 b 互质,即 2 个数的最大公约数是 1,表示为 gcd(a, b) = 1。

现在,有 N 个正整数,从 a1 到 aN,你要找出在 1 到 M 之间,有多少个整数 k 能够满足对于任意 ai,都有:

gcd(ai , k) = 1

小明觉得这是一个很神奇的东东,他有点不会做。他希望有一个数论高手可以来帮助他,你是小明心目中的数论高手么?来解决这个问题吧!

Input Format

输入的第一行是 2 个正整数 N 和 M。
输入的第二行是 N 个正整数 a1, a2, ..., aN,空格隔开。

Output Format

输出的第一行表示满足条件的 k 的个数。
接下来若干个,每行一个满足条件的 k,从小到大的顺序。由于输出数据较多,请使用printf进行输出。
3 12
6 1 5
3
1
7
11

Hint

显然 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】

prime.in
prime.out
3 20
3 5 8
6
1
7
11
13
17
19

【输入输出样例 3】

prime.in
prime.out
3 15
3 7 9
8
1
2
4
5
8
10
11
13
【数据范围】
对于所有的数据,保证 1 ≤ N ≤ 10^5, 1 ≤ M ≤ 10^6, 1 ≤ ai ≤ 10^6。

Source

木桶 分解质因数