大概题意是要你输出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. VC++中char和TCHAR之间转换

    char:计算机编程语言(c.c++.java等)中可容纳单个字符的一种基本数据类型. TCHAR:为了满足Unicode编码,对char的扩展,即_T(“str”)表示TCHAR类型 C++支持两种 ...

  2. Python面向对象(约束,异常处理,md5加密)(五)

    1. 类的约束 1. 写一个父类. 父类中的某个方法要抛出一个异常 NotImplementedError class Base: def login(self): raise NotImplemen ...

  3. LeetCode(105) Construct Binary Tree from Preorder and Inorder Traversal

    题目 Given preorder and inorder traversal of a tree, construct the binary tree. Note: You may assume t ...

  4. HashMap图解

    HashMap的数据结构和put.get.resize等操作的图解,看图轻松掌握HashMap (目前还不包括红黑树相关的部分) HashMap数据结构如下图 HashMap之put操作如下图 Has ...

  5. php expat+DOM+SimpleXML XML读取

    XML 文件 将在我们的例子中使用下面的 XML 文件: <?xml version="1.0" encoding="ISO-8859-1"?> & ...

  6. Java-确定被加载类的路径

    如何输出当前类在硬盘的物理路径 package com.tj; import java.net.URL; import java.security.CodeSource; import java.se ...

  7. cf950e Data Center Maintenance

    若推迟 \(u\) 必推迟 \(v\),则连边 <\(u,v\)>. 求强联通分量后缩点,答案显然是出度为 \(0\) 且 size 最小的 scc. #include <iostr ...

  8. python3--__getattr__和__setattr__捕捉属性的一个引用

    __getattr__和__setattr__捕捉属性的一个引用 __getattr__方法是拦截属性点号运算.更确切地说,当通过对未定义(不存在)属性名称和实例进行点号运算时,就会用属性名称为字符串 ...

  9. [android开发篇]权限分类:正常权限和危险权限

    https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous 系统权限 本文内容 安全架构 ...

  10. [UOJ#130][BZOJ4198][Noi2015]荷马史诗

    [UOJ#130][BZOJ4198][Noi2015]荷马史诗 试题描述 追逐影子的人,自己就是影子. ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静 ...