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