我们先来看看我们小学分解质因数的方法

我们可以用试除法来进行质因数分解

这里我们要知道,我们质因数分解,最多只能出现一个大于根号x的数,如果有两个的话,乘出来的值就比原数大了,我们只需要用2到根号x试除,就行了,最后如果还有余数,就把它单独成一个质因子了

比如26就分解成2*13

那我们怎么用代码实现呢?我们开一个cnt数组存储每个质因数的个数

然后进行试除法

void deprime(int x)
{
	for(int i = 2;i<=n/i;i++)
	{
		if(x%i == 0)
		{
			cnt[i]++;
			x/=i;
		} 	
	}
	if(x>1) cnt[x]++;
 } 

更多推荐