AcWing 867. 分解质因数
原题链接
简单
作者:
YAX_AC
,
2024-05-19 19:33:08
,
所有人可见
,
阅读 5
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int N = 110;
int n,a[N];
//关于为什么i一定是质数
//如果i只能被1或者自己整除就是质数,否则就不是,又因为他如果能取到i就说明从2到i-1都没有被取到,
//所以i一定是质数
void div(int n)
{
for(int i = 2; i<=n/i; i++)//n中最多质保函一个大于sqrt(n)的质因子
{
if(n%i==0)//i一定是质数
{
int s = 0;//指数,记录有多少个质数
while(n%i==0)
{
n/=i;
s++;
}
cout<<i<<' '<<s<<endl;
}
}
if(n>1) cout<<n<<' '<<1<<endl;
cout<<endl;
}
int main()
{
cin>>n;
while(n--)
{
int x;
cin>>x;
div(x);
}
return 0;
}