要点:
因为对于一个分解成的质因数,我们不仅要记录它的数值大小,还要记录它的次数
因此我们采用unordered_map [HTML_REMOVED]数组
同时,在代码的最后不要忘了最后的特判:
if(x>1) primes[i]++;
代码:
#include <unordered_map>
unordered_map<int ,int> primes;
void divide(int x)
{
for(int i=2;i<=x/i;i++)
{
if(x%i==0) //如果i是x的一个约数
{
while(x%i==0) //不断试除找到i对应的次数
{
primes[i]++;
x/=i;
}
}
}
if(x>1) primes[x]++;
}