#include<cstdio>
#include<cstring>
int flag[10000], prime[5000];
int main() {
memset(flag, 0, sizeof(flag));
memset(prime, 0, sizeof(prime));
int cur = 0;
for (int i = 2; i <= 10000; i++) {
if (!flag[i]) {
prime[cur++] = i;
for (int j = i; j <= 10000; j += i)
flag[j] = 1;
}
for (int i = 0; prime[i] != 0; i++)
printf("%d ", prime[i]);
printf("\n");
return 0;
}
代碼很簡單,就是埃氏演算法求素數,flag是存素數標志的,prime是存素數本身的,cur是prime陣列的游標。這演算法好像基本上沒啥問題吧,但是為啥我一輸出就非是1 3 5 7這樣的????我明明從2開始回圈的啊???
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/260741.html
標籤:C++ 語言
上一篇:switch陳述句default后的陳述句為什么執行不了
下一篇:函式呼叫
