详解与促背模板 -- 算法基础课 -- 数学知识(一):分解质因数
作者:
MW10
,
2025-01-13 14:15:16
,
所有人可见
,
阅读 4
/*
I n : a
分解质因数a = a1^n1 * ... * an ^ nn,从小到大输出质因数及其指数
O 底数,指数
I
2
6
8
O
2 1
3 1
2 3
*/
#include <iostream>
#include <algorithm>
using namespace std;
void divide(int x)
{
// 寻找质因数 : 1 循环条件,2 判断因数条件
for (int i = 2; i <= x / i; i ++ )
if (x % i == 0)
{
int s = 0;
while (x % i == 0) x /= i, s ++ ;
cout << i << ' ' << s << endl;
}
if (x > 1) cout << x << ' ' << 1 << endl;
cout << endl;
}
int main()
{
int n;
cin >> n;
while (n -- )
{
int x;
cin >> x;
divide(x);
}
return 0;
}