To find the number of divisors of a number, first calculate find by sieve and then try this-
int number_of_divisor(int num)
{
int j,count,div=1;
for(j=0;prime[j]<=sqrt(num);j++) //prime array holds the prime numbers
{
count=0;
while(num%prime[j]==0)
{
count++;
num/=prime[j];
}
div*=(count+1);
}
if(num>1)
div<<=1;
return div;
}
This function returns the number of divisors of the given number.
No comments:
Post a Comment