PAT 1013数素数

来源:互联网 发布:大数据重塑护理价值 编辑:程序博客网 时间:2024/06/05 14:41

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

输入格式:

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

输出格式:

输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

输入样例:
5 27
输出样例:
11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 89

97 101 103

分析:

先建立一个高效的判断素数的函数,然后按照题目要求,输出相应区域的素数.

源代码:

#include<iostream>using namespace std;bool issushu(int index){  if(index%2==0&&index!=2)  return false;  for(int i=3;i*i<=index;i++)  if(index%i==0)  return false;  return true; } int main(){  int m,n;  cin>>m>>n;  int t=0;int num=2;  while(t<m)  {    if(issushu(num))    t++;    num++;  }  num--;//第m个素数需要输出  int ctr=0;  while(t<=n)  {    if(issushu(num))    {      ctr++;//格式输出      if(ctr==10||t==n)      {cout<<num<<endl;      ctr=0;       }       else cout<<num<<" ";      t++;    }    num++;  }  return 0;}

原创粉丝点击