AcWing 867. 分解质因数

#include <iostream>
#include <algorithm>
using namespace std;
void divide(int x) {
    for (int i = 2; i <= x / i; i ++ )
        if (x % i == 0) {  //枚举的都是质因子,因为已经把1到i-1之间的所有质因子都除干净了
            int s = 0;
            while (x % i == 0) x /= i, s ++ ;
            cout << i << ' ' << s << endl;
        }//n中最多包含一个大于sqrt(n)的质因子
    if (x > 1) cout << x << ' ' << 1 << endl;//最后处理
    cout << endl;
}
int main() {
    int n;
    cin >> n;
    while (n -- ) {
        int x;
        cin >> x;
        divide(x);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/QingyuYYYYY/p/11854462.html