用软件Dev c++输出前50个素数,C语言

img

就是程序语法没问题,可以编译运行,但是输出结果是12,然后过了一会出现一连串很大的数,而不是50位素数,请问是我语法哪里逻辑出错了?

11行改为 i=2
另外整个逻辑都不对,怎么能出现i%2==1就认为x是素数呢???

#include <stdio.h>
int main()
{
    int cnt = 0;
    int n=2,i=2;
    while(cnt < 50)
    {
        for(i=2;i<n;i++)
        {
            if(n%i==0)
                break;
        }
        if(i==n)
        {
            cnt++;
            printf("%d\n",n);
        }
        n++;
    }
    return 0;
}