为什么无法输出10到99随机素数?

#include
#include
#include
using namespace std;
//void str_shushu();

int main()
{
str_shushu();
system("pause");
return 0;
}

void str_shushu()
{
int n=0;
for (int i = 0; i < 10; i++)
{

        int flag = 1;
        //srand((int)time(NULL));
        n = rand() % 89 + 10;
        for (int j = 1; j < n; j++)
        {
            if (n % j == 0)
                flag = 0;
                n = 0;
                break;
        }
        if (flag == 1)
            cout << n<< " " << endl; break;
}

}

# 程序逻辑上我已经看了好多次,编译器是通过的,但就是无法输出结果,求大神们帮我看一下?

 //srand((int)time(NULL));
这个不要注销

if (n % j == 0)
{
                flag = 0;
                n = 0;
                break;
}
这里缺少花括号

//
支持楼主,如果算法没问题,那就是逻辑错误,这个编译器是检查不出来的。注意:**对于初学编程者,一定要注意编写程序的规范,能提升很高的效率**

if (flag == 1)
{ cout << n<< " " << endl; break; }

这里缺少花括号

问题一:这个if的花括号给漏了
if (n % j == 0) {
flag = 0;
n = 0;
break;
}

    问题二:
    for (int j = 1; j < n; j++) 改为for (int j = 2; j < n; j++)
    j的初始值应该是2,如果是1的话,任何大于0的整数%1都==0

if (n % j == 0)
flag = 0;
n = 0;
break;
没有大括号

#include
#include
#include
using namespace std;
void str_shushu();
int main()
{
str_shushu();
system("pause");
return 0;
}
void str_shushu()
{
int n = 0,i=0;
srand(time(0));
while(i<=10)
{
int flag = 1;
//srand(time(0));
n = rand() % 89 + 10;
for (int j = 2; j < n; j++)
{
if ((n % j) == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
{
cout << n << " " << endl;
i++;
}
}
}

在诸位的帮助下我已经解决问题了,但是如果一旦把srand()放在while循环里就会输出同样的十个素数,放在while外面则正常,这是为什么?