题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1245

题意:求f(n)=n/1+n/2.....n/n,其中n/i保留整数

显然一眼看不出什么规律。而且n有2e31直接暴力肯定要出事情

但是f=n/x这个函数很好关于y = x 对称对称点刚好是sqrt(n)

于是就简单了直接求sum+n/i (i*i<n && i >=1)

然后乘以2,再减去i*i即可。

这个i*i表示的是什么呢,由于对称上半部份的值完全可以平移下来再减去i个i(这时候的i是临界于sqrt(n)整数点)

#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <cmath>
using namespace std; int main() {
int t , ans = 0;
long long n;
scanf("%d" , &t);
while(t--) {
ans++;
scanf("%lld" , &n);
long long sum = 0;
int i;
for(i = 1 ; (long long)i * i <= n ; i++)
sum += n / i;
sum *= 2;
sum -= (i - 1) * (i - 1);
printf("Case %d: %lld\n" , ans , sum);
}
return 0;
}

最新文章

  1. onSaveInstanceState() 和 onRestoreInstanceState()
  2. 1.Express入门
  3. 【leetcode】Maximum Subarray
  4. 数据库使用fmdb
  5. 【WEB前端经验之谈】没有速成,只有不断积累。
  6. V4L2应用程序框架-二【转】
  7. expression encoder 4 安装 出现“已经安排重启您的计算机
  8. 如何理解IoC/DI
  9. spark1.1.0学习路线
  10. Python每日一练(2):找出html中的所有链接(Xpath、正则两个版本)
  11. docker学习笔记4:利用docker hub上的mysql镜像创建mysql容器
  12. 使用FragmentTabhost取代Tabhost
  13. 将MPLS编译进linux内核中
  14. 在macOS上通过pyenv安装和切换多版本Python
  15. 如何设置Oracle数据库客户端字符集以及系统中的NLS_LANG环境变量
  16. ansj分词
  17. web安全Wargame—Natas解题思路(1-26)
  18. Button按钮为什么无缘无故会提交form表单?
  19. js实现table表格相同内容按需合并
  20. asp.net core 基于角色的认证登陆

热门文章

  1. 前端面试 js 你有多了解call,apply,bind?
  2. Hexo结合github制作博客
  3. Linux基础文件权限
  4. 安全测试基础2-sqlmap演练
  5. 源码分析--dubbo服务端暴露
  6. 40 篇原创干货,带你进入 Spring Boot 殿堂!
  7. EL表达式forEach中索引获取
  8. LSTM 反向传播算法
  9. PythonI/O进阶学习笔记_3.2面向对象编程_python的继承(多继承/super/MRO/抽象基类/mixin模式)
  10. 01 - zabbix | LLD自动发现