罗小白


私信TA

用户名:Timmmmy

访问量:16348

签 名:

隔一年又回来刷题了...

等  级
排  名 140
经  验 7188
参赛次数 0
文章发表 46
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

有问题可以互相交流,共同提高 欢迎私信,请多指教:)

解题思路:
        不知道为啥过不了哈哈哈

注意事项:
        bool isPrime[]     数组,isPrime[i] = true 表示 i 为素数

        int Prime[]          数组,Prime[i] 存储第 i 个素数

        primeCnt            素数个数


参考代码:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int N;
    cin >> N;
    int i, j, primeCnt = 0;
    bool* isPrime = new bool[N + 5];
    int* Prime = new int[N + 5];

    memset(isPrime, true, sizeof(isPrime));
    isPrime[0] = isPrime[1] = false;

    for (i = 2; i <= N; i++) {
        if (isPrime[i]) Prime[primeCnt++] = i;

        for (j = 0; j < primeCnt && i*Prime[j] <= N; j++) {
            isPrime[i*Prime[j]] = false;       
            if (i % Prime[j] == 0) break;   
        }
    }

    for (i = 0; i < primeCnt; ++i) {
        cout << Prime[i] << endl;
    }

    delete[] isPrime, Prime;

    return 0;
}


 

0.0分

1 人评分

  评论区