B3715 分解质因子 2
B3715 分解质因子 2
Analysis
唯一分解定理:对任意大于
引理:对任意大于
证明:
- 假设
n 有两个大于\sqrt n 的质因子p, q ,写出n 的唯一分解式n = t p q > t \sqrt n \sqrt n = tn ,其中t \geq 1 。得n > tn ,矛盾。这就证明了至多只有一个大于\sqrt n 的质因子。 - 在上式中取
p = q ,矛盾仍成立。这就证明了若唯一大于\sqrt n 的质因子存在,则它在唯一分解式中的指数一定是1 。
质因子分解:根据上述引理,只需要枚举
Code
#include <iostream>
int main() {
int T;
for (std::cin >> T; T; --T) {
long long n; std::cin >> n;
long long m = n;
for (int i = 2; 1ll * i * i <= n; ++i) while (m % i == 0) {
m /= i;
std::cout << i << ' ';
}
if (m != 1) {
std::cout << m;
}
std::cout << std::endl;
}
}