解析:
质因数分解
由题意可知,N%z==0 && z=p^e p要是素数
所以我们质因数分解N
N=p0e0 * p1e1 * p2e2 *…*pnen
对于p0e0 我们可以分解多少个不同的数呢。
我们按照幂次e0
分成
1+2+3+…+x=e0;
那么这样分的数都是不会相同的
对于每个e,我只要这样计算累加起来即可
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll x;
int main()
{
cin>>x;
vector<ll>v;
for(int i=2;i<=x/i;i++)
{
ll res=0;
if(x%i==0)
{
while(x%i==0) x/=i,res++;
v.push_back(res);
}
}
if(x>1) v.push_back(1);
ll sum=0;
for(int i=0;i<v.size();i++)
{
// cout<<v[i]<<endl;
ll ans=0;
int j=1;
while(ans+j<=v[i])
{
ans+=j;
sum++;
j++;
}
}
cout<<sum<<endl;
}