#include<iostream>
#include"math.h"
using namespace std;
bool isPrimeNumber(int number){//判断是否为素数
float sqrtOfNum=sqrt(number);
for(int j=2;j<=sqrtOfNum;j++)//从2到number的算术平方根迭代
if(number/j*j==number)//判断j是否为number的因数
return false;
return true;
}
void printNum(int number){//打印出<=number的所有质数
int j=0;
for(int i=2;i<=number;i++)
if(isPrimeNumber(i)==true){
cout<<("%-5d",i)<<"";
j++;
if(j%10==0)//每隔十个数字换行
cout<<endl;
}
}
int main(){
long start=time(NULL);
cout<<(bool)isPrimeNumber(29)<<endl;
printNum(1000);
long end=time(NULL);
cout<<endl<<"Time spent:"<<(end-start+1)<<endl;
}
扩展资料:
C++100以内的素数代码:
#include<iostream>
#include<math.h>
using namespace std;
const int N=300;
bool prime[N];//布尔数组变量0、1
void primeNum(int a);
void printPrimeNum();
//主函数
int main()
{
primeNum(N);
printPrimeNum();
return 0;
}
//得到N以内的素数
void primeNum(int a)
{
int i,j,n=0;
for(i=2;i<a;i++)//第一轮筛选去掉2的倍数
{
if(i%2)prime<i>=true;
else prime<i>=false;
}
for(i=3;i<=sqrt((double)a);i++)//double(N)是将N强制转换为双精度整型,求平方根i=3,5,7,9
{
if(prime<i>)
for(j=2*i;j<N;j+=i)prime[j]=false;//第二轮筛选相当于j=ni,去掉3,5,7...的倍数
}//经过两轮筛选相当于去掉了2,3,5,7...的倍数
}
//打印N以内的素数
void printPrimeNum()
{
int i,n=0,primeList[N];
for(i=2;i<N;i++)
if((i==2)||(prime<i>))primeList[n]=i,n++;
cout<<N<<"以内的素数个数为:"<<n<<endl<<"它们分别是:"<<endl;
for(i=0;i<n;i++)cout<<primeList<i><<"";
}