1013. 数素数 (20)

1013. 数素数 (20)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。

输入格式:

输入在一行中给出M和N,其间以空格分隔。

输出格式:

输出从PM到PN的所有素数,每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

用的筛选法,第1万个素数是104729,空间要开大

#include<iostream>
#include<vector>
using namespace std;

int main()
{
  int i,j;
  vector<int> a(11000,0);
  for(i=1;i<11000;i++)
  a[i]=1;
  a[1]=0;
  for(i=2;i<11000;i++)
  {
    if(a[i]==0)
    continue;
    for(j=i+i;j<11000;j+=i)
    a[j]=0;
  }
  int m,n;
  cin>>m>>n;
  vector<int> num(n+1,0);
  j=0;
  for(i=2;i<10010;i++)
  {
    if(a[i]==1)
    {   num[j]=i;
        j++;
    }
    if(j==n)
    break;
  }

     int count=1;
     cout<<num[m-1];
     for(i=m;i<n;i++)
     { 
          if((count+1)%10==1)
      cout<<num[i];
          else if((count+1)%10!=0&&(count+1)%10!=1)
          cout<<" "<<num[i];
          else
          cout<<" "<<num[i]<<endl;
          
          count++;
     }
     
}
    
  
  

  

posted on 2016-04-08 21:25  要听话哦  阅读(116)  评论(0)    收藏  举报

导航