试除法分解质因数模板
分解质因数在数学领域的意思是:任何一个合数都可以写成几个质数相乘的形式。其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。分解质因数只针对合数。例:12=2x2x3。
时间复杂度O(sqrt(n))
void divide(int x)
{
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;
}
例题
给定一个合数,分解质因数
#include <iostream>
using namespace std;
void divide(int x)
{
for(int i = 2; i <= x / i; i++)
{
if(x % i == 0)
{
int s = 0;
while(x % i == 0)
{
s ++;
x = x / i;
}
cout << i << ' ' << s << endl;
}
}
if(x) cout << x << ' ' << 1 << endl;
}
int main()
{
int a;
cin >> a;
divide(a);
return 0;
}
测试样例
输入样例:
12
输出样例:
2 2
3 1