https://atcoder.jp/contests/abc142/submissions/15352890
https://atcoder.jp/contests/abc142/submissions/15351653
「互いに素でなければならない」という条件から何となく素数がポイントになりそうという気持ちになる。実際、gcd(A, B)を素因数分解したものが答えになる。
AとBの公約数 ⇔ gcd(A, B)の約数 であり、約数の個数が素因数分解 したときの (i+1)(j+1)(k+1)... であることから、gcdを素因数分解した因数の組み合わせが約数ということになる。そのうち素数となる数字の個数が答えなので の因数の個数 n を出力すれば良い(正確には1を含むのでn+1を出力する)。なお、gcdの約数のうち素数となる数字の個数が答えになる理由は、素数以外を選ぶと「互いに素」条件で選べる数字が減ってしまうためである。
また、gcdの素因数分解に気づかなかったときの別解として、約数の個数が程度なので公約数を列挙して素数判定する方法でも間に合う。この実装の場合、約数がを超えるテストケースが存在するので、素数テーブルを使わずに各約数に対してで素数判定すること。