大概题意是要你输出1到n中,可以表示成a^b的数,a,b都是大于0的整数的个数,

当中b大于1。

由于1到n中。可以全然开平方的个数就是(n^0.5)的整数部分。

以此类推能够得到,全然开立方。全然开四次方各种的次数。

这种话,要枚举的数量太大。有什么办法能够让枚举的数量降低呢?

有的,因为随意一个大于1的整数都能够表示成两个素数的乘积。

于是。可以全然开平方的个数包含了可以全然开四次方,

八次方。十六次方以此类推的个数。

于是,可以知道,仅仅须要枚举可以全然开素数次方的个数就可以。

又由于n最大不会超过10^18,由于64位整型号可以表示的最大数

大概就是9*10^18多,所以不须要特地写个大数。

又由于这样。所以素数仅仅须要枚举到大小不超过63就可以。由于

2^63-1就是64位整型的最大值。所以这个n最大,开个63次方的整数部分

结果肯定为1,为1的话就代表可以1到n中可以全然开这个次方

的数仅仅有1个,又由于1可以开随意次方,所以,这个数肯定是1啦,

于是超过63的素数不是必需枚举了,由于仅仅有1可以开这么多次方。

对于一个数n,从小到大枚举到使n开次方为1就可以,再把前面

全部开次方的结果都累加,再除去之中反复的部分。终于结果就是

题意所要求的个数。

反复的部分是说,可以全然开六次方的肯定也可以全然开二次方和三次方,

这个能全然开六次方的个数被反复加了一次。所以要减去一次,

以此类推把全部反复的部分除去就可以。

另一点,这个题目,有的人用long long读入n的时候,会wa,

这个的话,是各种编译器的原因,用cin读入就好了,

至于有的人说缺失精度什么的。仅仅是想多了。

我的代码例如以下:

#include<iostream>
#include<cmath>
using namespace std;
int prime[]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61};
void result(long long x)
{
int i,j,k;
long long tmp,ans=1;
for(i=0;;i++)
{
tmp=(long long)(pow(x,1.0/prime[i]));
if(tmp<2)
break;
ans+=tmp-1;
for(j=i+1;;j++)
{
tmp=(long long)(pow(x,1.0/(prime[i]*prime[j])));
if(tmp<2)
break;
ans-=tmp-1;
for(k=j+1;;k++)
{
tmp=(long long)(pow(x,1.0/(prime[i]*prime[j]*prime[k])));
if(tmp<2)
break;
ans+=tmp-1;
}
}
}
printf("%lld\n",ans);
}
int main()
{
long long x;
while(cin>>x)
result(x);
}

hdu2204Eddy&#39;s爱好的更多相关文章

  1. 孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档

    孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库 ...

  2. 孤荷凌寒自学python第五十三天使用python写入和修改Firebase数据库中记录

     孤荷凌寒自学python第五十三天使用python写入和修改Firebase数据库中记录 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数 ...

  3. HDU-2204-Eddy's爱好-容斥求n以内有多少个数形如M^K

    HDU-2204-Eddy's爱好-容斥求n以内有多少个数形如M^K [Problem Description] 略 [Solution] 对于一个指数\(k\),找到一个最大的\(m\)使得\(m^ ...

  4. HDU-2204- Eddy’s爱好 (容斥原理)

    题意 给出一个数n,问1-n中有多少个数可以表示为m^k,m,k均为正整数且k>1 (1<=n<=1^18) 题解 (一开始^以为是异或懵逼了好久....) 额,显然1这个数比较讨厌 ...

  5. 09-jQuery案例:爱好选择器

    爱好选择器HTML 1 <!DOCTYPE html> 2 <head> 3 <meta charset="UTF-8"> 4 <titl ...

  6. 【转】39个让你受益的HTML5教程

    闲话少说,本文作者为大家收集了网上学习HTML5的资源,期望它们可以帮助大家更好地学习HTML5. 好人啊! 不过,作者原来说的40个只有39个,因为第5个和第8个是重复的. 原文在此! 1. 五分钟 ...

  7. C#开发微信门户及应用(39)--使用微信JSSDK实现签到的功能

    随着微信开逐步开放更多JSSDK的接口,我们可以利用自定义网页的方式来调用更多微信的接口,实现我们更加丰富的界面功能和效果,例如我们可以在页面中调用各种手机的硬件来获取信息,如摄像头拍照,GPS信息. ...

  8. CSharpGL(39)GLSL光照示例:鼠标拖动太阳(光源)观察平行光的漫反射和镜面反射效果

    CSharpGL(39)GLSL光照示例:鼠标拖动太阳(光源)观察平行光的漫反射和镜面反射效果 开始 一图抵千言.首先来看鼠标拖动太阳(光源)的情形. 然后是鼠标拖拽旋转模型的情形. 然后我们移动摄像 ...

  9. 抱歉!15:44-16:39阿里云RDS故障造成全站不能正常访问

    非常非常抱歉!2016年3月7日15:44-16:39,由于阿里云RDS(云数据库)故障,造成全站不能正常访问,给您带来了很大很大的麻烦,恳请您的谅解! 故障是在15:44开始出现的,应用日志中出现大 ...

随机推荐

  1. 【转发】【linux】【ftp】CentOS 7.0安装配置Vsftp服务器

    adduser -d /var/www/android -g ftp -s /sbin/nologin ftp2 一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firew ...

  2. [php扩展] php安装扩展注意事项

    添加扩展的时候注意此3项 用的编译器版本:VC11... 安装的php版本:x86/x64 是否线程安全:enabled / disabled

  3. Linux等待队列与唤醒

    1.数据结构 1.1等待队列头 struct __wait_queue_head { spinlock_t lock; struct list_head task_list; }; typedef s ...

  4. 20130829ios cocos2d下拉列表的向上弹出实现(ios开发遇到的frame的问题)

    前几天仔细区分了ios中frame,bounds,center之间的关系. Frame:边框矩形,是视图相对于其父坐标的位置和大小 Bounds:边界矩形,是本地坐标系统(一般较少使用) Center ...

  5. Idea使用Tomcat乱码 tomcat 9.0 8.5.37乱码

    使用新版tomcat 如8.5.37,9.0.14的时候idea控制台输出乱码,很简单老版本的如8.5.31就不会乱码,使用比较工具比较一下发现如下变化, 关键的关键是\apache-tomcat-8 ...

  6. !!注意!部署出现the requested resource is not available

    避免项目里重复包出现 同时tomcat的lib里避免重复包,也会出现requested resource isnot available!

  7. Python 多级目录选择+一键正反排序

    效果如图所示,可以根据条件来选择对象 cat pc.py #!/usr/bin/pythonfrom flask import Flask,render_template,request,redire ...

  8. loj2003 「SDOI2017」新生舞会

    分数规划+KM 算法 这个KM不好,看算法竞赛进阶指南的 #include <iostream> #include <cstring> #include <cstdio& ...

  9. 用btrace定位问题

    btrace 截取方法出入参 用btrace的手法,网上有很多.简单记录下我自己的使用经历. btrace脚本: import static com.sun.btrace.BTraceUtils.ex ...

  10. ppp详解

    ppp   一   PPP     point to point protocol               数据链路层协议 PPP session establishment 1 link est ...