codevs 2606 约数和问题
2016-01-30 08:40
246 查看
看到这道题我们首先考虑线性筛。然而???2*10^9直接跪掉。
考虑每个因子i对答案的贡献,为[n/i]*i。那么?分块处理即可。
#include<iostream>
#include<cstdio>
using namespace std;
long long x,y;
long long ans=0;
long long work(long long n)
{
ans=0;
long long i=1;
while (i<=n)
{
long long j=n/(n/i);
ans=ans+(n/i)*((j*j+j+i-i*i)/2);
i=j+1;
}
return ans;
}
int main()
{
scanf("%lld%lld",&x,&y);
printf("%lld\n",work(y)-work(x-1));
return 0;
}
考虑每个因子i对答案的贡献,为[n/i]*i。那么?分块处理即可。
#include<iostream>
#include<cstdio>
using namespace std;
long long x,y;
long long ans=0;
long long work(long long n)
{
ans=0;
long long i=1;
while (i<=n)
{
long long j=n/(n/i);
ans=ans+(n/i)*((j*j+j+i-i*i)/2);
i=j+1;
}
return ans;
}
int main()
{
scanf("%lld%lld",&x,&y);
printf("%lld\n",work(y)-work(x-1));
return 0;
}
相关文章推荐
- Flume传输数据事务分析
- Delete Node in a Linked List
- WIN7 安装使用远程服务器管理工具-如DHCP、AD域、HyperV、远程桌面
- 算法学习笔记(三) 最短路 Dijkstra 和 Floyd 算法
- 打开系统设置
- 探索工作流(五)--工作流宿主WorkflowApplication
- Linux Shell零基础案例实战(二)
- 读杂书的总结
- CentOS配置Nginx SLL
- kernel的initcall函数
- 从微信观看游戏制作观
- Oracle 痛下杀手:Java 浏览器插件将在 JDK 9 上被彻底弃用
- day9 IDEA 下spark 开发
- C#语言实现ArcGIS数据源重置之Set Data Source功能
- ASP.NET 系列:RBAC权限设计
- Compare Version Numbers -- LeetCode
- 推荐!手把手教你使用Git
- jrebel实现Java热更不用真是暴殄天物
- 横向ListView中嵌套ListView
- OSChina 周六乱弹 —— 名不副实的菜