Hi All,

I am writing a program to find the number between 1 and 100 that has the greatest number of distinct divisors. Below is my code for the same. It is returning an erroneous answer, i.e. 8 for greatest number of distinct divisors and 4 as the number for which the greatest divisors are occurring:

Please point out modifications and mistakes. Thank you.

Code:
/*program to find a number in the range 1 to 100 that has the largest number of distinct divisors*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
//this loop counts the number of distinct divisors

int main()
{
int countstore[100]={0},result,i,j,num,halfnum,count=1,index;
for(num=4;num<=100;num++)
{
  halfnum=floor(num/2);
  count=1;                       
  for(i=2;i<=halfnum;i++)
  {
      if(num%i==0)
      {
        count+=1;
      }
  }
  for(j=1;j<=97;j++)
  {
    countstore[j]=count;                 
  }
}

//result stores the number of distinct divisors, index stores the number for which the greatest distinct divisors have been found

result=0;
for(i=1;i<=97;i++)
{
 if(result<countstore[i])
 {
 result=countstore[i];
 index=i+3;
 }
}
printf("the integer between 0 and 100 with %d number of distinct divisors is %d",result,index);
system("pause");
return 0;
}