2884: 练60.5 素数筛选
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:3
解决:1
题目描述
试编一个程序,用筛数法输出$100$以内所有的素数,并统计个数。
输入
无。
输出
$100$以内所有的素数,并在下一行统计出素数个数。
样例输入 复制
无
样例输出 复制
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
100以内的素数个数: 25
提示
#include<iostream>
#include<cstdio>
#include<cstring>
#include<math.h>
#include<algorithm>
using namespace std;
int main(){
bool a[101];
int i,j,num;
for (int i=2;i<=100;i++){
a[i]=true;
}
a[0]=a[1]=false;
i=1;
do{
i++;
if (a[i]){
for (j=2;j<=100/i;j++){ //枚举
a[i*j]=false; //做上标记
}
}
}while (i<100);
num=0;
for (int i=1;i<=100;i++){
if (a[i]){
printf("%d ",i);
num++;
//if (num%10==0) cout<<endl;
}
}
cout<<endl;
cout<<"100以内的素数个数:"<<num<<endl;
return 0;
}