题目链接: 传送门

完美的数字

Time Limit: 1000MS     Memory Limit: 65536K

题目描述


Bob是个很喜欢数字的孩子,现在他正在研究一个与数字相关的题目,我们知道一个数字的完美度是 把这个数字分解成三个整数相乘AAB(0<A<=B)的方法数,例如数字80可以分解成1180,2220 ,445,所以80的完美度是3;数字5只有一种分解方法115,所以完美度是1,假设数字x的完美度为d(x),现在给定a,b(a<=b),请你帮Bob求出S,S表示的是从a到b的所有数字的流行度之和,即S=d(a)+d(a+1)+…+d(b)。

输入

输入两个整数a,b(1

输出

输出一个整数,表示从a到b的所有数字流行度之和。

输入示例

180

输出示例

107

思路

假设要求[1,80](即a=1,b=80)的数字完美度之和。 因为要拆成A * A * B的形式,我们可以令 80/(A * A), 随便取一个数A,我们看看有什么规律。 当A=3时,t = 80/(3 * 3) = 8。 即可以得到8种情况 :
3 * 3 * 1 = 9,
3 * 3 * 2 = 18,
3 * 3 * 3 = 27,
3 * 3 * 4 = 36,
3 * 3 * 5 = 45,
3 * 3 * 6 = 54,
3 * 3 * 7 = 63,
3 * 3 * 8 = 72
这些情况的值在80范围内,他们是A=3时,B的所有可能的情况。 又由于A<=B,所以排除
3 * 3 * 1 ,
3 * 3 * 2 ,
即 B=1,2 的情况。 那么剩下6种情况(t-A+1=8-3+1=6)。所以,[a,b]的流行度就是 f(b)-f(a-1)

#include <cstdio>
#include <cmath>
typedef __int64 LL;
LL a, b;
LL cal(LL k)
{
    LL p = (LL)pow((double)k,1.0/3);
    LL ans = 0;
    for(LL i = 1; i <= p; i++)
    {
        ans += k/(i*i)-i+1;
    }
    return ans;
}
int main()
{
    while(~scanf("%I64d%I64d",&a,&b))
    {
        LL sum = cal(b)-cal(a-1);
        printf("%I64d\n",sum);
    }
    return 0;
}

FZU 2191 完美的数字的更多相关文章

  1. ACM学习历程—FZU2191完美的数字(数学)

    Description Bob是个很喜欢数字的孩子,现在他正在研究一个与数字相关的题目,我们知道一个数字的完美度是 把这个数字分解成三个整数相乘A*A*B(0<A<=B)的方法数,例如数字 ...

  2. OpenCV 玩九宫格数独(二):knn 数字识别

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:刘潇龙 前言 首先需要说明,这里所说的数字识别不是手写数字识别! 但凡对机器学习有所了解的人,相信看到数 ...

  3. ZipMarket数字内容/素材交易网站源码项目

    ZipMarket程序仿自Envato旗下网站,对于想创建数字内容/素材交易平台的站长来说,ZipMarket是一个十分独特和极具创新的解决方案,用户在你的网站注册并购买或出售数字内容/素材作品时,你 ...

  4. 1030 完美数列 (25 分)C、Java、python

    题目描述 给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列. 现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完 ...

  5. Acdreamoj1115(数学思维称号)

    意甲冠军:1,3是完美的数,假定a,b是完美的数,然后,2+a*b+2*a+2*b,结论认为,n无论是完美的数字. 解法:開始仅仅看出来2+a*b+2*a+2*b=(a+2)*(b+2)-2,没推出很 ...

  6. PAT 1081 检查密码(15) (代码+思路)

    1081 检查密码(15 分) 本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能.该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母.数字和小数点 .,还必须既有字母也 ...

  7. Linux命令大总结

    from http://elain.blog.51cto.com/3339379/623310 Linux命令大总结------------------------------------------ ...

  8. 使用Python创建AI比你想象的轻松

    使用 Python 创建 AI 比你想象的轻松 可能对AI领域,主要开发阶段,成就,结果和产品使用感兴趣.有数百个免费源和教程描述使用Python的AI.但是,没有必要浪费你的时间看他们.这里是一个详 ...

  9. 映射Map、队列Queue、优先级队列PriorityQueue

    映射Map 将对象映射到其他对象的能力是解决编程问题的有效方法.例如,考虑一个程序,它被用来检查 Java 的 Random 类的随机性.理想情况下, Random 会产生完美的数字分布,但为了测试这 ...

随机推荐

  1. 关于lazyload插件的一些笔记

    Lazy Load Plugin for jQuery 需要引入 jQuery,兼容各种 IE,适合 PC 端使用.详细 API 可以参考 http://www.appelsiini.net/proj ...

  2. [leetcode]算法题目 - Sudoku Solver

    最近,新加坡总理李显龙也写了一份代码公布出来,大致瞧了一眼,竟然是解数独题的代码!前几天刚刚写过,数独主要算法当然是使用回溯法.回溯法当时初学的时候在思路上比较拧,不容易写对.写了几个回溯法的算法之后 ...

  3. 流量工程 traffic engineering (TE)

    什么是流量工程 流量工程是指根据各种数据业务流量的特性选取传输路径的处理过程.流量工程用于平衡网络中的不同交换机.路由器以及链路之间的负载. [编辑] 流量工程的内容 流量工程在复杂的网络环境中,控制 ...

  4. spring配置属性的两种方式

    spring配置属性有两种方式,第一种方式通过context命名空间中的property-placeholder标签 <context:property-placeholder location ...

  5. Ubuntu's Trash

    1.Location    Where is Trash?    /home/userName/.local/share/Trash2.Under Trash    Three files:      ...

  6. [AJAX系列]XMLHttpRequest请求

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. if -else 条件语句原理

    #!/usr/bin/python # coding utf-8 name = '?' if name == 'python': print('欢迎BOSS') else: print('输入错误')

  8. Fragment 与Activity之间的通信

    1.Fragment-->Activity 在fragment中的onAttach()中引用Activity实现的接口实例. 2Activity-->Fragment 直接调用 3多个Fr ...

  9. java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 错误

    你的ArrayList 是一个没有值的对象(不是null),也就是里面什么对象也没有存(即:arrayList.size()==0).但是,你有取它下标为0值的操作.所以,数组越界了!!比如array ...

  10. Swift 高阶函数

    map.flatMap.filter和reduce,几乎实现lambda表达式的语言里都会在集合里增加这些方法, 见swift 学习(一)基础知识 (基本数据类型,操作符,流控制,集合)中的集合 ht ...