请问这个程序在c11c99上运行报错是什么原因?

给定一个正整数 n (2≤n<10000),判断是否为质数。

输入
多组输入,每行一个 n (2≤n≤10000)。

输出描述
对于每一组数,如果是质数则输出 Yes,否则输出 No。

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
    int n,m,a;
    while(scanf("%d",&n)!=EOF)
    {
        if(n<2||n>=10000)
            exit(0);
        else
        {
            for(m=2;m<=n;m++)
            {
                if(n%m==0)
                   a++;
                   
            }
            if(a==2)
            printf("Yes\n");
            else
            printf("No\n");
            
                
        }
    }
    return 0;
}

请问大家为什么这个代码在Devc++上能运行通过但是在c11c99就报错了?是代码错误还是不符合题目要求?