C - 階乗と素因数
Editorial
/
N! = 1 \times 2 \times ... \times N に含まれる素因数 p の個数を F(N,\ p) と書くことにする. (ただし p は素数である)
つまり,N!/p^k が整数となるような最大の非負整数 k が F(N,\ p) である.
例えば,N=12 のとき 12! = 479001600 = 2^{10} \times 3^5 \times 5^2 \times 7 \times 11 であるから,F(12,\ 2) = 10,\ F(12,\ 3) = 5,\ F(12,\ 47) = 0 などである.
今,素数 p と整数 x が与えられるので,N-F(N,\ p) = x となる最小の非負整数 N を求めてください.
なお,0! = 1 である.
最初の行にはテストケースの数 T が与えられる.
その後の行には T 個のテストケースが続く.
各テストケースは 1 行のみからなり,半角スペース区切りで p,\ x が与えられる.
各テストケースに対して,N-F(N,\ p) = x となる最小の非負整数 N を出力してください.
ただし,そのような N が存在しなければ
writer: laycrs
Time Limit: 1 sec / Memory Limit: 31 MB
問題文
つまり,N!/p^k が整数となるような最大の非負整数 k が F(N,\ p) である.
例えば,N=12 のとき 12! = 479001600 = 2^{10} \times 3^5 \times 5^2 \times 7 \times 11 であるから,F(12,\ 2) = 10,\ F(12,\ 3) = 5,\ F(12,\ 47) = 0 などである.
今,素数 p と整数 x が与えられるので,N-F(N,\ p) = x となる最小の非負整数 N を求めてください.
なお,0! = 1 である.
入力
その後の行には T 個のテストケースが続く.
各テストケースは 1 行のみからなり,半角スペース区切りで p,\ x が与えられる.
制約
- 0 \leq T \leq 5000
- 2 \leq p \leq 47 で p は素数である
- 0 \leq x \leq 50 で x は整数である
出力
ただし,そのような N が存在しなければ
-1
を(シングルクォーテーションを除いて)出力してください.入力例
2 5 0 47 50
出力例
0 51