#include <bits/stdc++.h>
using namespace std;
#define sze 10000100
bool vis[sze];
vector<long long>ar;
void sieve()
{
long long i,j;
for(i=3; i<sze; i+=2)
{
if(vis[i]==0)
{
ar.push_back(i);
for(j=2*i; j<sze; j+=(i))
{
vis[j]=1;
}
}
}
}
long long check(long long a)
{
long long ans=1,i1,xx=sqrt(a);
while(a%2==0)
{
a/=2;
}
for(i1=0; ar[i1]<=xx&&i1<ar.size(); i1++)
{
if(a%ar[i1]==0)
{
long long cnt=0;
while(a%ar[i1]==0)
{
a/=ar[i1];
cnt++;
}
ans*=(cnt+1);
}
xx=sqrt(a);
}
if(a>1)
{
ans*=2;
}
return ans-1;
}
int main()
{
sieve();
long long n;
while(cin>>n)
{
if(n>=3)
printf("%lld\n",check(n)+1);
else
printf("1\n");
}
return 0;
}
using namespace std;
#define sze 10000100
bool vis[sze];
vector<long long>ar;
void sieve()
{
long long i,j;
for(i=3; i<sze; i+=2)
{
if(vis[i]==0)
{
ar.push_back(i);
for(j=2*i; j<sze; j+=(i))
{
vis[j]=1;
}
}
}
}
long long check(long long a)
{
long long ans=1,i1,xx=sqrt(a);
while(a%2==0)
{
a/=2;
}
for(i1=0; ar[i1]<=xx&&i1<ar.size(); i1++)
{
if(a%ar[i1]==0)
{
long long cnt=0;
while(a%ar[i1]==0)
{
a/=ar[i1];
cnt++;
}
ans*=(cnt+1);
}
xx=sqrt(a);
}
if(a>1)
{
ans*=2;
}
return ans-1;
}
int main()
{
sieve();
long long n;
while(cin>>n)
{
if(n>=3)
printf("%lld\n",check(n)+1);
else
printf("1\n");
}
return 0;
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন