AcWing 867. 分解质因数
原题链接
简单
作者:
oyel
,
2020-09-20 01:21:43
,
所有人可见
,
阅读 537
# include <iostream>
using namespace std;
void divide(int x){
if (x <= 2){
cout << x << " " << 1 << endl;
return;
}
for (int i=2; i <= x / i; i++){
// n中最多只包含一个大于sqrt(n)的因子
if (x % i == 0){
// i一定是质数(2到i-1的因子都已除干净)
int s = 0;
while(x % i == 0){
x /= i;
s++;
}
cout << i << " " << s << endl;
}
}
if (x > 1) cout << x << " " << 1 << endl;
cout << endl;
return;
}
int main(){
int n;
cin >> n;
while(n--){
int x;
cin >>x;
divide(x);
}
return 0;
}