题意 (Codeforces 546D)

给定一个数x=a!b!" role="presentation">x=a!b!x=a!b!的形式,问其中有几个质因数。

分析

数据规模略大,故先作预处理。预处理的时候运用了前缀和和记忆化搜索的思想。

之后就比较简单了。

代码

#include <bits/stdc++.h>
#define MP make_pair
#define PB push_back
#define fi first
#define se second
#define ZERO(x) memset((x), 0, sizeof(x))
#define ALL(x) (x).begin(),(x).end()
#define rep(i, a, b) for (int i = (a); i <= (b); ++i)
#define per(i, a, b) for (int i = (a); i >= (b); --i)
#define QUICKIO \
ios::sync_with_stdio(false); \
cin.tie(0); \
cout.tie(0);
using namespace std;
using ll = long long;
using ull = unsigned long long;
using pi = pair<int,int>;
const int MAXN=5000000;
bool isPrime[MAXN+5]; ll cnt[MAXN+5];
ll getCnt(int x)
{
if(cnt[x]!=-1) return cnt[x];
else
{
if(isPrime[x]) return cnt[x]=1;
for(int i=2;i*i<=x;++i)
{
if(isPrime[i] && x%i==0) return cnt[x]=getCnt(x/i)+1;
}
}
}
ll sum[MAXN+5];
int main()
{
QUICKIO
memset(isPrime,true,sizeof(isPrime));
ZERO(sum);
isPrime[0]=isPrime[1]=false;
rep(i,2,MAXN)
{
if(isPrime[i])
{
for(int j=i*2;j<=MAXN;j+=i)
isPrime[j]=false;
}
}
memset(cnt,-1,sizeof(cnt));
cnt[1]=0;
rep(i,1,MAXN)
{
sum[i]=sum[i-1]+getCnt(i);
//cout<<sum[i]<<endl;
}
//rep(i,1,100) cout<<sum[i]<<" "; cout<<endl;
int t;
scanf("%d",&t);
rep(i,1,t)
{
int a,b;
scanf("%d%d",&a,&b);
printf("%lld\n",sum[a]-sum[b]);
//cout<<" "<<a<<" "<<sum[a]<<" "<<b<<" "<<sum[b]<<endl;
}
//rep(i,1,100) cout<<sum[i]<<" "; cout<<endl;
return 0;
}

最新文章

  1. 非域客户端的office使用RMS加密服务出现&lsquo;介绍&ldquo;信息权限管理服务&rdquo;&rsquo;服务的提示
  2. 用c#开发微信 (4) 基于Senparc.Weixin框架的接收事件推送处理 (源码下载)
  3. Apache和Tomcat区别
  4. Mysql,Oracle,Java数据类型对应
  5. 完美转换MySQL的字符集 Mysql 数据的导入导出,Mysql 4.1导入到4.0
  6. Spring Boot 启动原理分析
  7. 只能从脚本中调用在类定义上有[ScriptService]属性的Web服务问题的解决方案
  8. 《Javascript网页经典特性300例》
  9. JQuery之 serialize() 及serializeArray() 实例介绍
  10. java基础知识整理
  11. WebService就是这么简单
  12. PostOffice最小距离问题
  13. onDraw(canvas)和dispatchDraw(canvas)方法
  14. 虚拟机网络连接方式导致的p地址为10.0.2.*的问题
  15. python 所有常用模块汇总
  16. springBoot(12)---整合Swagger2
  17. TabLayout基本使用
  18. 2018.11.10 FCC java分享大会
  19. hdu3294 Girls&#39; research manacher
  20. Express4.X中的bin/www是作什么用的?为什么没有后缀?

热门文章

  1. 2018中国大学生程序设计竞赛 - 网络选拔赛 1010 YJJ&#39;s Salesman 【离散化+树状数组维护区间最大值】
  2. PHP设计模式——装饰器模式
  3. 【洛谷P1073】[NOIP2009]最优贸易
  4. ASP.NET mvc 验证码 (转)
  5. 安装VMware,出现没有虚拟网络适配器的问题
  6. jdbc执行过程 jar包下载
  7. solr6.6教程-core的添加(二)
  8. JSP/Servlet开发——第一章 动态网页基础
  9. Layabox进阶之资源加载
  10. Python接受流式输入