原题链接

简要题意:

求区间内能分解为两个质数乘积的数。

欧拉筛先筛素数。

然后再筛答案。

时间复杂度: \(O(n)\).

实际得分:\(100pts\).

#pragma GCC optimize(2)
#include<bits/stdc++.h>
using namespace std; const int N=5e6+1; inline int read(){char ch=getchar();int f=1;while(ch<'0' || ch>'9') {if(ch=='-') f=-f; ch=getchar();}
int x=0;while(ch>='0' && ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x*f;} bool h[N]; int s,e;
int prime[N],cnt=0;
bool hal[N]; inline void Euler() {
h[1]=1;
for(int i=2;i<N;i++) {
if(!h[i]) prime[++cnt]=i;
for(int j=1;j<=cnt && i*prime[j]<N;j++) {
h[i*prime[j]]=1;
if(i%prime[j]==0) break;
}
} //for(int i=1;i<=cnt;i++) printf("%d ",prime[i]);
// 欧拉筛
for(int i=1;i<=cnt;i++) {
// printf("%d %d\n",i,prime[i]);
if(prime[i]*prime[i]>=N) break;
for(int j=i;j<=cnt;j++) {
// printf("%d %d %d\n",j,prime[j],prime[i]*prime[j]);
if(prime[i]*prime[j]>=N) break;
hal[prime[i]*prime[j]]=1;
}
} //筛半质数
} int main(){
Euler(); s=read(),e=read();
int sum=0; for(int i=s;i<=e;i++) sum+=hal[i];
printf("%d\n",sum);
return 0;
} /**************************************************************
Problem: 2120
User: bfw
Language: C++
Result: 正确
Time:42 ms
Memory:31320 kb
****************************************************************/

最新文章

  1. Java的书写格式,标识符及命名规则,注释
  2. UWP开发之Mvvmlight实践三:简单MVVM实例开发(图文详解付代码)
  3. 开发常用之在webstorm中使用cmd
  4. 带参数的CLR存储过程
  5. 跟我一起学WCF(3)——利用Web Services开发分布式应用
  6. 如何把项目托管到GitHub
  7. 什么是REST架构(转)
  8. 14.3.5.3 How to Minimize and Handle Deadlocks 如何减少和处理死锁
  9. Excel表格导入Mysql数据库,一行存入多条数据的前后台完整实现思路(使用mybatis框架)
  10. 关于5303狄惟佳同学的myod程序设计的补充实现
  11. vscode+MinGW+cmake设置轻量ide
  12. C++反射实现(转)
  13. 『Re』正则表达式模块_常用方法记录
  14. Into outfile禁用情况下另类方法拿webshell
  15. python 约束,异常处理与MD5加密
  16. jboss eap 6.2 ear包 下使用log4j日志
  17. @font-face 字体图标的应用
  18. Angular http跨域
  19. sqlhelper写调用存储过程方法
  20. 脚本工具---自动解析mysql建表语句,生成sqlalchemy表对象声明

热门文章

  1. github 下载部分代码
  2. js数组中重复的对象去重
  3. gerrit Q&amp;A
  4. JAVA中对list map根据map某个key值进行排序
  5. Vue源码之组件化/生命周期(个人向)
  6. 某图片站反爬加密字段x-api-key破解
  7. vue中如何缓存一些页面
  8. MVC08
  9. 一些大厂的css reset 代码
  10. 超详细的HDFS读写流程详解(最容易理解的方式)