atcoder#ABC150D. [ABC150D] Semi Common Multiple

[ABC150D] Semi Common Multiple

题目描述

長さ N N の偶数からなる正の整数列 A= a1,a2,...,aN A=\ {a_1,a_2,...,a_N} と、整数 M M が与えられます。

任意の k(1  k  N) k(1\ \leq\ k\ \leq\ N) に対して以下の条件を満たす正の整数 X X A A の「半公倍数」と定義します。

  • X= ak × (p+0.5) X=\ a_k\ \times\ (p+0.5) を満たす負でない整数 p p が存在する。

1 1 以上 M M 以下の整数のうちの A A の半公倍数の個数を求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M a1 a_1 a2 a_2 ... ... aN a_N

输出格式

1 1 以上 M M 以下の整数のうちの A A の半公倍数の個数を出力せよ。

题目大意

给定一个 NN 个数的数组 aia_i ,求出满足对所有的 aia_i ,存在自然数 pp,满足 X=ai×(p+0.5)X=a_i\times(p+0.5)XX 的个数,且 X[1,M]X\in[1,M]
保证所有的 aia_i 都是偶数。

2 50
6 10
2
3 100
14 22 40
0
5 1000000000
6 6 2 6 2
166666667

提示

制約

  • 1  N  105 1\ \leq\ N\ \leq\ 10^5
  • 1  M  109 1\ \leq\ M\ \leq\ 10^9
  • 2  ai  109 2\ \leq\ a_i\ \leq\ 10^9
  • ai a_i は偶数である。
  • 入力は全て整数である。

Sample Explanation 1

- 15 = 6 × 2.5 15\ =\ 6\ \times\ 2.5 - 15 = 10 × 1.5 15\ =\ 10\ \times\ 1.5 - 45 = 6 × 7.5 45\ =\ 6\ \times\ 7.5 - 45 = 10 × 4.5 45\ =\ 10\ \times\ 4.5 より、15,45 15,45 A A の半公倍数です。1 1 以上 50 50 以下の整数に他に A A の半公倍数はないので、答えは 2 2 となります。

Sample Explanation 2

答えが 0 0 の場合もあります。