#include <iostream> using namespace std; void FilterPrime(int n) { bool* isPrimes = new bool[n+1]; for(int i=2;i<=n;++i) { isPrimes[i] = true; }//创建一个与传入N 相同 大小的bool型数组 isPrimes[2] = true; for(int j=2;j<=n;++j) { if(isPrimes[j]==true) { for(int m=2;j*m<=n;++m) { isPrimes[j*m] = false; }//这里 j会从2~n j*m 的数就不是素数 把对应的数组的数组 去掉 } } for(int k=2;k<=n;++k) { if(isPrimes[k]==true) { cout<<k<<"是素数"<<endl; } } delete [] isPrimes; } int main() { int num; cin>>num; FilterPrime(num); system("pause"); return 0; }