atcoder#ABC150D. [ABC150D] Semi Common Multiple

[ABC150D] Semi Common Multiple

配点 : 400400

問題文

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

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

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

11 以上 MM 以下の整数のうちの AA の半公倍数の個数を求めてください。

制約

  • 1N1051 \leq N \leq 10^5
  • 1M1091 \leq M \leq 10^9
  • 2ai1092 \leq a_i \leq 10^9
  • aia_i は偶数である。
  • 入力は全て整数である。

入力

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

NN MM

a1a_1 a2a_2 ...... aNa_N

出力

11 以上 MM 以下の整数のうちの AA の半公倍数の個数を出力せよ。

2 50
6 10
2
  • 15=6×2.515 = 6 \times 2.5
  • 15=10×1.515 = 10 \times 1.5
  • 45=6×7.545 = 6 \times 7.5
  • 45=10×4.545 = 10 \times 4.5

より、15,4515,45AA の半公倍数です。11 以上 5050 以下の整数に他に AA の半公倍数はないので、答えは 22 となります。

3 100
14 22 40
0

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

5 1000000000
6 6 2 6 2
166666667