质因数个数--欧拉函数中统计纯素数
和互质数不同,这里统计的是纯素数部分
就是x/=i那一部分
#include<bits/stdc++.h>
using namespace std;
#define N 100011
typedef long long ll;
typedef pair<ll,int> PII;
int n,m,k;
ll eular(ll x)
{ ll an=0;
ll p=x;
for(ll i=2;i*i<=x;i++)
{
if(x%i) continue;
while(x%i==0)
{
x/=i;
}
an++;
// p=p/i*(i-1);
}
if(x>1)
{
an++;
// p=p/x*(x-1);
}
return an;//an是纯质数的质因数
//p得出来是质因数,an及他的倍数
}
int main()
{
ll a;
cin>>a;
cout<<eular(a);
return 0;
}
///10000 200;