同じ素因数を持つもの同士を Union-Find でつないでいき, \(P\) が属する連結部分の頂点の数を数える.