为什么这个程序运行后无结果

#include"stdio.h"
int main()
{

int num=0;
int a,i,s;
for(a=100;;a++)
{
    for(i=2;i<a;i++)
    {
        if(a%i)
        {
            num++;
            if(num==37)
            break;
        }
    }            
}
s=(a/10)%10;
printf("%d",s);
return 0;

}
题目是大于100的第37个素数的十位数是多少

代码思路是错的啊

#include"stdio.h"
int main()
{
int num=0;
int a,i,s;
for(a=100;;a++)
{
    for(i=2;i<a;i++)
    {
        if(a%i == 0)
              break;
    }   
    if(i==a)
        num++;
     if(num==37)  
          breal'       
}
s=(a/10)%10;
printf("%d",s);
}


死循环了啊,没有判断条件。
你只是在内循环中增加了break,只能退出内循环。

num++的位置不对啊,只有当i == a的时候才是素数,你的代码是只要余数是1,num就++了,逻辑错了
代码修改如下:

#include"stdio.h"
int main()
{
    int num=0;
    int a,i,s;
    for(a=100;;a++)
    {
        for(i=2;i<a;i++) //这里判断是否是素数
        {
            if(a%i ==0)
                break;
        }           
        if(i==a) num++; //只有当i ==a的时候,a才是素数
        if(num == 37) break;
    }
    s=(a/10)%10;
    printf("%d",s);
    return 0;
}