1013 数素数 测试点4无法通过, 请问如何解决?

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int m, n;
    cin >> m >> n;
    int cnt = 0, a = 0;
    long long i;
    for(i = 2; cnt < n; i++)
    {
        int flag = 1;
        int k = sqrt(i);
        for(a = 2; a <= k; a++)
        {
            if(i % a == 0)
            {
                flag = 0;
            }
        }
        if(flag == 1)
        {
            cnt++;
            if((cnt - m + 1) != 1 && (cnt - m + 1) % 10 == 1)
            {
                printf("\n");
            }
            if(cnt >= m)
            {
                if(cnt <= n)
                {
                    if((cnt - m + 1) % 10 == 0 || cnt == n)
                    cout << i;
                    else 
                    cout << i << " ";
                }    
            }
        }
    }
}

i % a == 0时,结束当前循环。加break

if(i % a == 0){
     flag = 0;
     break;
}