1013. 数素数 (20)

本文介绍了一个用于生成指定范围内的素数的C++程序。该程序首先接收用户输入的两个正整数M和N(M≤N≤10^4),然后输出从第M个素数到第N个素数之间的所有素数,每行输出10个素数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

令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



#include<iostream>
#include <math.h>
using namespace std;
bool fun(int);
int main()
{
  int a,b,t=2,m=0;
  cin>>a>>b;
  while(1)
  {
    if(fun(t))
    {
      m++;
      if(m==a)
      {
        break;
      }
    }
    t++;
  }
  int flag=0;
  while(1)
  {
    if(fun(t))
    {
      if(flag==0)
      {
        cout<<t;
      }
      else
      {
        cout<<" "<<t;
      }
      flag++;
      if(flag==10)
      {
        cout<<endl;
        flag=0;
      }
      m++;
      if(m==b+1)
      {
        break;
      }
    }
    t++;
  }
  return 0;
}
bool fun(int t)
{
  int temp = sqrt(t); //开平方
  if(t<=3)
  {
    return true;
  }
  for(int p=2;p<=temp;p++) //采用开平方的数作为最后一个,可以节约时间
  {
    if(t%p==0)
    {
      return false;
    }
  }
  return true;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值