为什么以下代码需要运行很长时间
int d = 0;
int n = 3000000;
for (int i = 2;i <= n;i ++)
{
if (f [i] == 0) p [d ++] = i;
for (int j = 0;j < d;j ++)
{
if (p [j] * i <= n) f [p [j] * i] = 1;
else break;
if (i % p [j] == 0) break;
}
}
for (int i = 0;i < d;i ++) prime [p [i]] = 1;