Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:1 s 空间限制:256 MB

#12850. 互质

Statistics

题目描述

小明总是陶醉在数论的海洋里,他知道:数论是数学的皇后。而数论的核心,就是质数!
但是现在小明想研究互质问题,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