判断素数的个数,老是错不知道改怎么改了,100输出的素数个数是错的,求指点

#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int i=2;
int m=0;
int sum=0;
for(i=2;i<n;i++)
{

    if(n%i==0)
   {
    m++;
    sum=sum+m;
   }
  
  
  

}
printf("%d",sum);

}

你可以参考下我写的
#include<stdio.h>
int main()
{
int i,m,sum;
int n = 100;
sum = 0;
for(i=2;i<n;i++)//范围2-多少
{
for(m = 2;m<i/2;m++)//范围内的每个数
{
if(i%m ==0)
{
sum++;//显示非素数个数
break;
}
}
}
printf("\n%d\n",n-sum);
return 0;
}