AcWing 867. 分解质因数
原题链接
简单
作者:
满目星河_0
,
2021-04-10 12:56:01
,
所有人可见
,
阅读 284
分解质因数:包括质因数的定义以及代码的详细注释
//分解质因数定义:
//质因数 [3] 就是一个数的约数,并且是质数。比如8=2×2×2,2就是8的质因数;12=2×2×3,2和3就是12的质因数。
//把一个式子以12=2×2×3的形式表示,叫做分解质因数。
#include<iostream>
using namespace std;
void divide(int a){
for(int i=2;i<=a/i;i++){//
if(a%i==0){//找到a可以整除的的那个质数之后就一直除,能除几次就除几次。
a/=i;
int s=1;//s表示当前正在除的这个质数的指数
while(a%i==0){
a/=i;
s++;
}
cout<<i<<" "<<s<<endl;
}
}
if(a>1) cout<<a<<" "<<"1"<<endl;
//最多只有一个大于根下n的质因子(两个相乘就大于n了,通过反证法证明),如果有就输出出来,并且其
//指数是1.
}
int main(){
int n;
cin>>n;
while(n--){
int a;
cin>>a;
divide(a);
cout<<endl;
}
return 0;
}