AtCoder Beginner Contest 227 G 問題 Divisors of Binomial Coefficient
問題
提出解答
問題の概要
二項係数 の正の約数の個数を求めよ.
制約
解法
約数に関する問題なので, 素因数分解に着目する.
である. ここで, で正の素数全体の集合として,
で表せるとき, 各素数 に対して, とすると, 任意の素数 に対して, であり,
である. よって, を求めることを目標にする.
さて, 2つの正の整数 について,
であるから, 結局は と, の高々 個の整数に関する素因数分解が求められればよい.
ここで, なので, 試し割り方やポラード・ロー素因数分解法では無理がある. しかし, が連続した 個の整数であるから, 以下のような方法を取ることができる.
を求める.
以下の素数を全て求める. これはエラトステネスの篩で計算できる. そして, 以下の素数で素因数分解したい 個の整数を割り切り, を計算する. 以下の素数を全て見た場合, 残った整数は 以外の可能性があるが,
整数 において, より大きい素因数は高々1つだけである.
という事実から, 残った 以外の整数は素数である.
実装は それぞれにおける最小の素因数を求める方法と同様に, を計算することにより, 計算量は として, である.
の場合も同様であり, 計算量も である.
約数の個数を求める.
素因数分解が求まったので, 約数の個数を求める.
の正の約数の個数は 個である.
という事実から, 求めるべき答えは,
である.