解题思路:
不知道为啥过不了哈哈哈
注意事项:
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 人评分