codeforces 1033 D. Divisors (数论+思维)

题目链接:https://codeforces.com/problemset/problem/1033/D

如果将 \(a\) 分解为 \(p_1^{k_1}p_2^{k_2} \dots p_i^{k_i}\) 的形式,那约数个数公式为 \(\prod(k_i+1)\)

每个数有 \(3-5\) 个因数可以发现,只有 \(pq, p^2, p^3, p^4\) 这四种情况,其中 \(p,q\) 均为质数

对于后三种情况可以直接二分分解,考虑第一种情况,要将 \(a[i]\) 分解成两个质数,我们发现,在剩下的 \(a\) 中,如果存在 \(a[j]\) 使得 \(gcd(a[i],a[j])\)不为 \(1\),则可以使用这个 \(gcd\) 来分解 \(a[i]\)\(a[j]\)

对于之后剩下的所有 \(a\),和所有原序列中的 \(a\) 均无公因数,所以这些元素所包含的质因数不等于之前分解出来的任何一个质因数,而只需要求质因数的指数,并不在意具体的质因数,所以直接计算即可

posted @ 2021-09-08 22:42  Tartarus_li  阅读(74)  评论(0编辑  收藏  举报