求助27号测试点过不去,求调
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a[100000000],l=0,sum=1,ans=1,z[100000000];
int main() {
cin>>n;
ll t=n;
bool p=1;
for (int i=2;i<=sqrt(n);i++){
if (n%i==0){
p=0;
break;
}
}
if (p){
cout<<1;
return 0;
}
for (ll i=2;i<=sqrt(n);i++){
while(t%i==0){
t/=i;
a[l++]=i;
}
}
if (t>1) a[l]=t;
z[0]=a[0];
for (ll i=1;i<=l;i++){
ans*=a[i];
bool f=1;
for (ll j=0;j<sum;j++){
if (z[j]==ans){
f=0;
break;
}
}
if (f&&ans){
z[sum++]=ans;
ans=1;
}
}
cout<<sum;
return 0;
}