怠惰の累積和

技術/競プロ/怪文書/虚無

AtCoder Beginner Contest 142 D - Disjoint Set of Common Divisors

問題概要

 正整数A,Bの正の公約数の集合から任意の2つについて互いに素になるように要素を選ぶ時の要素数の最大値を求めよ。

atcoder.jp

 

解法

 まず、A,Bの公約数を全列挙する。これはA,Bのgcdの約数であるからgcdを求めた後にO(\sqrt{N})(NはA,Bのgcd)で求められる。

 この中から任意の2要素が互いに素となるように選ぶためには、素数である要素を選べばよいから、先ほど求めた集合を順に見ていくことで答えとなる数が求まる。

atcoder.jp