输出200000个素数,要求用素数除的方法,时间1秒内

http://codepad.org/LR98AoQg怎样修改才能不超时???

http://codepad.org/8BinJUWR
不超时

 #define n 200000
#include <iostream>
using namespace std;

int main()
{
    int p[n];
    p[0] = 2;
    int idx = 1;
    int i;
    for (i = 1; i < n; i++) p[i] = 0;
    for (i = 3; i < n; i++)
    {
        bool bp = true;
        for (int j = 0; j < idx; j++)
        {
            if (i % p[j] == 0) { bp = false; break; }
        }
        if (bp) p[idx++] = i;
    }
    i = 0;
    while (p[i] != 0) cout << p[i++] << endl;
}

http://codepad.org/1B8T6Fdf

关键是你输出太多,如果没有输出,就不会超时。