AcWing 867. 分解质因数
原题链接
简单
作者:
Doc_kk
,
2023-03-19 16:56:51
,
所有人可见
,
阅读 31
#include <iostream>
using namespace std;
void divide(int x){
for(int i = 2 ; i <= x / i; i ++)
if(x % i == 0){//如果x除i没余数 就是x是i的倍数
int s = 0;//s是指数
while(x % i == 0) x /= i, s++;//当x是i的倍数的时候 x先把所有的因数i除干净 同时计数除了多少次i
cout << i << ' ' << s << endl;//i是因数 s是指数
}
if(x > 1) cout << x << ' ' << 1 << endl;//如果x还是大于1 说明他就是那个大于sqrt(x)的因子 那就输出它
cout <<endl;
}
int main(){
int n;
cin >> n ;
while(n--){
int a;
cin >> a;
divide(a);
}
return 0;
}