#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;
}

 

相关文章:

  • 2021-12-04
  • 2021-07-16
  • 2021-11-26
猜你喜欢
  • 2022-12-23
  • 2021-06-22
相关资源
相似解决方案