

Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 400 点
問題文
長さ N の偶数からなる正の整数列 A= {a_1,a_2,...,a_N} と、整数 M が与えられます。
任意の k(1 \leq k \leq N) に対して以下の条件を満たす正の整数 X を A の「半公倍数」と定義します。
- X= a_k \times (p+0.5) を満たす負でない整数 p が存在する。
1 以上 M 以下の整数のうちの A の半公倍数の個数を求めてください。
制約
- 1 \leq N \leq 10^5
- 1 \leq M \leq 10^9
- 2 \leq a_i \leq 10^9
- a_i は偶数である。
- 入力は全て整数である。
入力
入力は以下の形式で標準入力から与えられる。
N M a_1 a_2 ... a_N
出力
1 以上 M 以下の整数のうちの A の半公倍数の個数を出力せよ。
入力例 1
2 50 6 10
出力例 1
2
- 15 = 6 \times 2.5
- 15 = 10 \times 1.5
- 45 = 6 \times 7.5
- 45 = 10 \times 4.5
より、15,45 は A の半公倍数です。1 以上 50 以下の整数に他に A の半公倍数はないので、答えは 2 となります。
入力例 2
3 100 14 22 40
出力例 2
0
答えが 0 の場合もあります。
入力例 3
5 1000000000 6 6 2 6 2
出力例 3
166666667
Score : 400 points
Problem Statement
Given are a sequence A= {a_1,a_2,......a_N} of N positive even numbers, and an integer M.
Let a semi-common multiple of A be a positive integer X that satisfies the following condition for every k (1 \leq k \leq N):
- There exists a non-negative integer p such that X= a_k \times (p+0.5).
Find the number of semi-common multiples of A among the integers between 1 and M (inclusive).
Constraints
- 1 \leq N \leq 10^5
- 1 \leq M \leq 10^9
- 2 \leq a_i \leq 10^9
- a_i is an even number.
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N M a_1 a_2 ... a_N
Output
Print the number of semi-common multiples of A among the integers between 1 and M (inclusive).
Sample Input 1
2 50 6 10
Sample Output 1
2
- 15 = 6 \times 2.5
- 15 = 10 \times 1.5
- 45 = 6 \times 7.5
- 45 = 10 \times 4.5
Thus, 15 and 45 are semi-common multiples of A. There are no other semi-common multiples of A between 1 and 50, so the answer is 2.
Sample Input 2
3 100 14 22 40
Sample Output 2
0
The answer can be 0.
Sample Input 3
5 1000000000 6 6 2 6 2
Sample Output 3
166666667