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