1. 程式人生 > >求某個數範圍內的素數個數

求某個數範圍內的素數個數

素數只有1和本身兩個因子,申請一個數組,儲存資料1 2 3 4….,將有兩個因子以上的數置為零,剩下的就是素數,

#include <QCoreApplication>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    int range_max;//最大值
    cout<<"請輸入最大素數檢測界限值:";
    cin>>range_max;
    int
*num=new int[range_max+1];//申請記憶體 for(int i=0;i<=range_max;i++)//賦值 num[i]=i; for(int j=2;j<=range_max;j++)//由大於2的值為一個因子 { if(num[j]!=0) { for(int k=2;k*j<=range_max;k++)//由大於2的值為另一個因子 num[k*j]=0; //此值重新賦值為0 } } int count=0
;//個數 for(int n=2;n<=range_max;n++) //輸出範圍內的所有素數 { if(num[n]!=0)//不為0即為素數 { cout<<num[n]<<" ";//輸出素數 count++; if(count%5==0) //5個數為一行 cout<<endl; } } cout<<"素數個數為:"<<count<<endl; delete
[]num; num=NULL; return a.exec(); }