为什么第一个输出的不是100到208的素数,而第二个换了字符输出来的就是素数?请求帮助

#include<stdio.h>
#include<math.h>
int main()
{
int a,b,d,c=0;
for(a=101;a<=200;a=a+2)
{d=sqrt(a);
for(b=2;b<=d;b++)
if(a%b==0)break;
if(a>=d+1)

{printf("%d",a);
c=c+1;
}
if(c%10==0)printf("\n");
}
printf("\n");

return 0;
}

#include<stdio.h>
#include<math.h>
int main()
{
int n,k,i,m=0;
for(n=101;n<=200;n=n+2)
{k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)break;
if(i>=k+1)

{printf("%d",n);
m=m+1;
}
if(m%10==0)printf("\n");
}
printf("\n");

return 0;
}

  if (a >= d + 1)   这里a应该改成b

你题目的解答代码如下:

#include <stdio.h>
#include <math.h>
int main()
{
    int a, b, d, c = 0;
    for (a = 101; a <= 200; a = a + 2)
    {
        d = sqrt(a);
        for (b = 2; b <= d; b++)
            if (a % b == 0)
                break;
        //if (a >= d + 1)
        if (b >= d + 1)  //  这里a应该改成b
        {
            printf("%d ", a);
            c = c + 1;
        }
        if (c % 10 == 0)
            printf("\n");
    }
    printf("\n");

    return 0;
}

如有帮助,望采纳!谢谢!

第一个你要拿因数跟d做判断啊,你这个因数就是b,a是原本的数字,d等于根号a,肯定小于a,还有注意大括号,for循环必带大括号你这个写的真的不规范