分解质因数
867. 分解质因数
题目分解一个数的所有质因数,并输出底数和指数。
例如:36=3^2 + 2^2;
链接(acwing 867)[https://www.acwing.com/problem/content/869/]
代码如下:
#include<iostream>
using namespace std;
#define cout(x) printf("%d",x)
#define cin(x) scanf("%d",&x)
#define ll long long
void fun(int x){
for(int i=2;i<=x/i;i++){
int ans=0;
while(x%i==0){
ans++;
x/=i;
}
if(ans>0)cout<<i<<" "<<ans<<endl;
}
if(x>1)cout<<x<<" "<<1<<endl;
}
int main(){
int n,a;
cin>>n;
for(int i=0;i<n;i++){
cin>>a;
fun(a);
cout<<endl;
}
return 0;
}
浙公网安备 33010602011771号