提交时间:2025-09-30 16:10:46

运行 ID: 68346

#include <bits/stdc++.h> using namespace std; int main() { int n,flag[1010],primes[1010],cnt=0; cin>>n; flag[0] = flag[1] = 0; for(int i = 2; i <= n; i ++) flag[i] = 1; for(int i = 2; i <= n;i ++){ // 如果i是质数,存到primes数组中 if(flag[i]==1){ primes[cnt] = i; cnt ++; } // 根据当前的质数表,筛掉合数 for(int j = 0;i*primes[j] <= n;j ++) { flag[i*primes[j]] = 0; if(i%primes[j]==0) break; } } // 输出所有质数 for(int i = 0; i <= n; i ++){ if(flag[i]==1){ cout<<i<<" "; } } return 0; }