XMU 1246
2024-08-29 09:46:15
http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1246
求区间内素数个数,经典问题,区间长度10^6,数的取值最多能到10^12(此题范围稍小)
用筛法搞出[2,根号b]范围内的素数,用这些素数再去筛[a,b]
一个吐血的trick,1不是素数
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std ;
typedef long long ll ;
bool prime[] ;
bool prime1[] ;
int main()
{
int t ;
scanf("%d",&t) ;
while(t--)
{
ll a,b ;
scanf("%lld%lld",&a,&b) ;
for(ll i= ;i*i<=b ;i++)prime[i]=true ;
for(ll i= ;i<=b-a ;i++)prime1[i]=true ;
for(ll i= ;i*i<=b ;i++)
{
if(prime[i])
{
for(ll j=*i ;j*j<=b ;j+=i)prime[j]=false ;
for(ll j=max(2LL,(a+i-)/i)*i ;j<=b ;j+=i)prime1[j-a]=false ;
}
}
int ans= ;
for(ll i= ;i<=b-a ;i++)
if(prime1[i])ans++ ;
if(a==)ans-- ;
printf("%d\n",ans) ;
}
return ;
}
最新文章
- 删除对象中的key
- mysql聚合函数
- Jquery-uploadify多文件上传插件使用介绍
- codevs 1913 数字梯形问题 费用流
- Labview学习之远程控制VI
- WPF4多点触摸事件
- windows phone 8.1开发 onedrive操作详解
- 关于fprint()和fwrite()
- [Linux] deepin与nginx
- Java_基础篇(杨辉三角)
- vue三级联动
- 第四节:框架前期准备篇之进程外Session的两种配置方式
- linux系统/var/log目录下的信息详解
- H5的缓存 manifest
- Docker学习笔记之Copy on Write机制
- 解决ubuntu13.04 有线网络 时常掉线的问题
- 【jdk源码分析】ArrayList的size()==0和isEmpty()
- JpGraph使用详解之中文乱码解决方法
- chrome和IE下的滚动条样式修改
- [LeetCode]Flatten Binary Tree to Linked List题解(二叉树)