题意

求[l,r]的最大指数和(1<=l,r<=10^18)

最大指数和(如64=8^2=4^3=2^6,所以64的最大指数和是6)

题解

很明显我们可以先求出[1,n]的最大指数和,然后再作差。

我们可以先求出num[i]代表[1,n]中最大指数为i的数有多少个。

然后枚举全部的i,然后让答案加上i*num[i];

那么怎么求num[i]呢

我们可以求出[1,n]中指数为x的数有多少个作为num[x]的初步值。这个用n1/x就可以求出(不过要注意精度问题,及其恶心,看代码吧)

然后这个num却对是不对的。我们发现16=4^2=2^4,num[2]中却有16,所以我们用num[2]-num[4]就行了。

我们发现对于每一对i>j且i%j==0num[j]都需要减num[i],不过我们要倒序枚举j。

具体看代码吧。

 #include<iostream>
#include<cmath>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const long long INF=1e18+;
const long long inf=(long long)<<;
long long dp[],a,b,n;
long long ksm(long long x,long long b){
long long tmp=;
while(b){
if(b&){
double num=1.0*INF/tmp;
if(x>num)return -;
tmp=tmp*x;
}
b>>=;
if(x>inf&&b>)return -;
x=x*x;
}
return tmp;
}
long long calc(long long n,long long x){
long long a=(long long)(pow((double)(n),1.0/x)+1e-);
long long b=ksm(a,x);
if(b==n)return a;
if(b==-||b>n)return a-;
long long c=ksm(a+,x);
if(c!=-&&c<=n)return a+;
else return a;
}
long long solve(long long x){
if(x==)return ;
if(x==)return ;
long long k;
dp[]=x;
for(long long i=;i<=;i++){
dp[i]=calc(x,i)-;
if(dp[i]==){
k=i-;
break;
}
}
for(long long i=k;i>=;i--)
for(long long j=;j<i;j++){
if(i%j==)dp[j]-=dp[i];
}
long long ans=dp[];
for(long long i=;i<=k;i++){
ans+=dp[i]*i;
}
return ans;
}
int main(){
while(scanf("%lld%lld",&a,&b)!=EOF){
if(a==&&b==)break;
printf("%lld\n",solve(b)-solve(a-));
}
return ;
}

最新文章

  1. namenode metadata 备份与恢复实验
  2. struts2 struts1.x 区别
  3. caffe windows学习:第一个测试程序
  4. 你真的理解z-index吗?
  5. Robotium跨应用处理方法
  6. 转的git
  7. 激光相机数据融合(5)--Gazebo仿真数据融合
  8. Learn Lua in 15 Minutes
  9. ios访问web页面&lt;div&gt;点击事件不起效果,以及alert()显示url的解决办法
  10. laravel whereDoesntHave
  11. C# 今天时间 今天结束时间
  12. ORACLE窗口函数
  13. Leetcode 11.盛最多水的容器 By Python
  14. 数据库之sql语句汇总20180616
  15. android 与html交互java调js与js调java操作
  16. Jquery Cookie操作
  17. 使用webbench做压力测试
  18. java各种框架的比较,分析
  19. kali linux之无线渗透(续)
  20. 一起来做Chrome Extension《搭个架子》

热门文章

  1. STL中的迭代器的使用
  2. 如何使用阿里云的yum源
  3. 路飞学城Python-Day42
  4. Layui Excle/csv数据导出
  5. Spring MVC中 提交表单报错400
  6. jsonp实现原理
  7. NYIST 973 天下第一
  8. 王立平--EditText实现单行显示,左側图标,提示信息
  9. HTML5简单进度环插件
  10. Python 获取Google+特定用户最新动态