1. 程式人生 > >1013 數素數

1013 數素數

令 P​i​​ 表示第 i 個素數。現任給兩個正整數 M≤N≤10​4​​,請輸出 P​M​​ 到 P​N​​ 的所有素數。

輸入格式:

輸入在一行中給出 M 和 N,其間以空格分隔。

輸出格式:

輸出從 P​M​​ 到 P​N​​ 的所有素數,每 10 個數字佔 1 行,其間以空格分隔,但行末不得有多餘空格。

輸入樣例:

5 27

輸出樣例:

11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
#include <bits/stdc++.h>
using namespace std;
int a[
150001],p[100001]; int main() { int n,m,t=2,len=0; cin>>m>>n; p[1]=2; for(int i=2; i<=150001; i++){ if(i%2)a[i]=true; else a[i]=false; } for(int i=3; i<=sqrt(150001); i++){ if(a[i]){ for(int j=i+i; j<150001; j=j+i){ a[j]
=false; } } } for(int i=2; i<=150001; i++){ if(a[i]){ p[t++]=i; } } for(int i=m;i<=n;i++){ if(len!=0)cout<<" "; cout<<p[i]; len++; if(len==10){ len=0; cout<<endl;
} } }