求【a,b】区间内素数的个数

#include
#include
int main()
{
int n,i,k,isPrime,count=0;
unsigned int a,b;
scanf("%d,%d",&a,&b);
for (n=a;n<=b;n=n+2)
{
isPrime=1;
k=sqrt(n);
for (i=2;i<=k;i++)
{
if (n%i==0)
{
isPrime=0;
break;
}
if (isPrime) count++;
}

}
printf("count=%d\n",count);
return 0;

}
不知道哪里错了 count 结果一直为0

if ( isPrime ) count ++; 放到for(i=2;i<=k;i++)循环外面
有帮助的话采纳一下哦!

修改处见注释,供参考:

#include <stdio.h>
#include <math.h>
int main()
{
    int n, i, k, isPrime, count = 0;
    unsigned int a, b;
    scanf("%d,%d", &a, &b);
    for (n = a; n <= b; n++)  //(n = a; n <= b; n = n + 2) 修改
    {
        isPrime = 1;
        if (n <= 1)  continue;//排除 1 修改
        k = sqrt(n);
        for (i = 2; i <= k; i++)
        {
            if (n % i == 0)
            {
                isPrime = 0;
                break;
            }
        } //} 移动到这里
        if (isPrime) count++;
        //} 这里修改位置
    }
    printf("count=%d\n", count);
    return 0;
}