1453 统计素数个数 2

本文介绍了一种在指定范围内计算素数数量的算法,并提供了一个具体的C++实现案例。该算法首先通过筛法预处理素数,然后统计给定区间内的素数个数。

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

1453 统计素数个数 2

 

时间限制: 1 s
空间限制: 256000 KB
题目等级 : 黄金 Gold
 
 
 
题目描述 Description

判断[a,b]中素数的个数

输入描述 Input Description

输入共1行,a,b两数

输出描述 Output Description

输出共1行,输出素数的个数

样例输入 Sample Input

3 5

样例输出 Sample Output

2

数据范围及提示 Data Size & Hint

对于100%的数据,a,b≤5000,000

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 using namespace std;
 5 const int N=5000000;
 6 int vis[N];
 7 int main()
 8 {
 9     int l,r;
10     cin>>l>>r;
11     vis[0]=1;
12     vis[1]=1;
13     for(int i=2;i<=sqrt(r)+1;i++)
14      {
15          if(vis[i]==0)
16           {
17               for(int j=i*2;j<=r;j+=i)
18                {
19                    vis[j]=1;
20                 } 
21           }
22      }
23      int ans=0;
24      for(int i=l;i<=r;i++)
25       {
26           if(vis[i]==0)
27            {
28                ans++;
29            }
30       }
31       cout<<ans;
32 }

 

转载于:https://www.cnblogs.com/lyqlyq/p/6740483.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值