Problem 2191 完美的数字
2016-06-23 19:37
211 查看
Problem 2191 完美的数字 Accept: 41 Submit: 121 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description Bob是个很喜欢数字的孩子,现在他正在研究一个与数字相关的题目,我们知道一个数字的完美度是 把这个数字分解成三个整数相乘A * A * B(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)。 Input 输入两个整数a,b(1<=a<=b<=10^15) Output 输出一个整数,表示从a到b的所有数字流行度之和。 Sample Input 1 80 Sample Output 107 Source 福州大学第十二届程序设计竞赛
#include <stdio.h> long long cal(long long N) { long long ans=0; for(long long i=1;i*i*i<=N;i++)//如果是int 型i 那么i*i*i也会是int型 ans+= N/(i*i) +1-i; return ans; } int main() { long long a, b; while(~scanf("%I64d %I64d",&a,&b)) { long long sum = cal(b)-cal(a-1);//从0-b和减去从0-a-1的和 便得 a-b的和 printf("%I64d\n",sum); } return 0; } 来源: https://segmentfault.com/a/1190000002724584[/code]
相关文章推荐
- angular指令系列---多行文本框自动高度
- Linux平台下利用系统接口函数按照行读写文件
- IOS沙盒Files目录说明和常用操作
- 自定义ImageView使图片不变形
- 路径诱导系统
- 第十五周项目一-程序填空
- Servlet生命周期分为三个阶段
- 解决mysql source 命令导入数据库 乱码
- 【设计模式】数据访问对象模式
- MySQL性能调优与架构设计——第 18 章 高可用设计之 MySQL 监控
- Android Studio NDK 开发
- Modular Inverse
- 【Unity3D实战】零基础一步一步教你制作酷跑类游戏(1)
- Android消息机制---Handler工作原理
- JQ 练习题
- Quicksum
- 关于spring预加载的监听器
- (感悟)打字练习
- 达内
- JS实现手机振动