题目背景

Smart最近沉迷于对约数的研究中。

题目描述

对于一个数X,函数f(X)表示X所有约数的和。例如:f(6)=1+2+3+6=12。对于一个X,Smart可以很快的算出f(X)。现在的问题是,给定两个正整数X,Y(X<Y),Smart希望尽快地算出f(X)+f(X+1)+……+f(Y)的值,你能帮助Smart算出这个值吗?

输入输出格式

输入格式:

输入文件仅一行,两个正整数X和Y(X<Y),表示需要计算f(X)+f(X+1)+……+f(Y)。

输出格式:

输出只有一行,为f(X)+f(X+1)+……+f(Y)的值。

输入输出样例

输入样例#1:

2 4
输出样例#1:

14
输入样例#2:

123 321
输出样例#2:

72543

说明

对于20%的数据有1≤X<Y≤105。

对于60%的数据有1≤X<Y≤1*107。

对于100%的数据有1≤X<Y≤2*109。

前面做过一个约数个数的问题 点击就送

这题就是求[l,r]的约数和

也就是 1~r 减 1~l-1的约数和

但是直接用上题方法会T成狗

于是我们发现有些因子出现次数是相同的

比如 若 n=8

那 1~8出现次数分别为 8 4 2 2 1 1 1 1

出现次数相同的区间右端点=n/(n/l)

我们可以把出现次数相同的一起算 (大佬说这叫乘法原理)

直接输出lld 出现了蜜汁错误

于是改了输出优化

屠龙宝刀点击就送

#include <cstdio>
#include <cctype> typedef long long LL;
LL x,y;
inline void Read(LL &x)
{
register char ch=getchar();
for(x=;!isdigit(ch);ch=getchar());
for(;isdigit(ch);x=x*+ch-'',ch=getchar());
}
LL solve(LL x)
{
LL l=,r,ret=;
for(;l<=x;l=r+)
{
r=x/(x/l);
ret+=x/l*(r+l)*(r-l+)/;
}
return ret;
}
void print(LL ans)
{
if(ans/) print(ans/);
putchar(ans%+'');
}
int Main()
{
Read(x);
Read(y);
print(solve(y)-solve(x-));
return ;
}
int sb=Main();
int main(int argc,char *argv[]){;}

洛谷 P2424 约数和的更多相关文章

  1. 洛谷 - P2424 - 约数和 - 整除分块

    https://www.luogu.org/problemnew/show/P2424 记 \(\sigma(n)\) 为n的所有约数之和,例如 \(\sigma(6)=1+2+3+6=12\) . ...

  2. 洛谷—— P2424 约数和

    https://www.luogu.org/problem/show?pid=2424 题目背景 Smart最近沉迷于对约数的研究中. 题目描述 对于一个数X,函数f(X)表示X所有约数的和.例如:f ...

  3. 洛谷P2424 约数和 题解

    题目 约数和 题解 此题可以说完全就是一道数学题,不难看出这道题所求的是 \(\sum\limits_{i=x}^{y}{\sum\limits_{d|i}{d}}\) 的值. 很显然,用暴力枚举肯定 ...

  4. 洛谷P2424/codevs 2606 约数和

    http://codevs.cn/problem/2606/ https://luogu.lohu.info/problem/show?pid=2424 题目背景 Smart最近沉迷于对约数的研究中. ...

  5. 洛谷 [P1403] 约数研究

    本题的思想很好,正难则反 首先如果暴力枚举每个数的约数个数,一定会超时,那么我们就从约数的角度考虑,题目中问的是1~n的约数个数和,那么我们就枚举约数,看每个约数在1~n中出现过几次. #includ ...

  6. 洛谷 [SDOI2015]约数个数和 解题报告

    [SDOI2015]约数个数和 题目描述 设\(d(x)\)为\(x\)的约数个数,给定\(N,M\),求$ \sum\limits^N_{i=1}\sum\limits^M_{j=1}d(ij)$ ...

  7. 洛谷 P2715 约数和

    给出a和b求a^b的约数和. 题目描述 输入输出格式 输入格式: 一行两个数a,b. 输出格式: 一个数表示结果对 9901 的模. 输入输出样例 输入样例#1: 2 3 输出样例#1: 15 说明 ...

  8. 洛谷 - P1403 - 约数研究 - 数论

    https://www.luogu.org/problemnew/show/P1403 可以直接用线性筛约数个数求出来,但实际上n以内i的倍数的个数为n/i的下整,要求的其实是 $$\sum\limi ...

  9. 洛谷P3327 约数个数和 结论+莫比乌斯反演

    原题 就是让你求\(\sum\limits_{i=1}\sum\limits_{j=1}d(ij)\)(其中\(d(x)\)表示\(x\)的因数个数) 首先有引理(然而并没有证明): \(d(ij)= ...

随机推荐

  1. 转-tcp建立和释放详解

    建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. [更新于2017.01.04 ]该部分内容配图有误,请大家见谅,正确的配图如下,错误配图也不删 ...

  2. 教程:动手用自己电脑搭建一个网站 (nat123 花生壳 动态域名 个人电脑做服务器)

    先ps一下..今晚试了N种方法,终于找到一个靠谱 免费 好用的方法,来改装自己电脑成为服务器,在外网也能通过域名访问了!!! 需要准备的东西: Tomcat:这个是web容器,其实有了这个就已经让电脑 ...

  3. HDU - 6383 百度之星2018初赛B 1004 p1m2(二分答案)

    p1m2  Accepts: 1003  Submissions: 4595  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 131072 ...

  4. Guid.NewGuid().ToString()的几种格式 (转)

    1.Guid.NewGuid().ToString("N") 结果为:      38bddf48f43c48588e0d78761eaa1ce6 2.Guid.NewGuid() ...

  5. 数据库路由中间件MyCat - 源代码篇(12)

    此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. NodeList ruleNodes = e.getElementsByTagName("rule ...

  6. linux命令之env和export

    1.查看环境变量: env查看所有的环境变量: 使用echo命令查看单个环境变量.例如: echo $PATH 使用set查看所有本地定义的环境变量. unset可以删除指定的环境变量. 2.常用环境 ...

  7. HyperLedger Fabric 多机部署(二)

    启动各个节点: ./orderer order节点启动方式 ./peer node start peer节点启动方式 Admin@org1.example.com 使用hyperledger fabr ...

  8. java中对List进行分组和排序

    排序 对List进行排序,有两种办法 第一个是用java提供的工具类Collections提供的sort方法进行排序 废话不多说,上代码 首先定义一个Student public class Stud ...

  9. day5字典作业详解

    1.day5题目 1.有如下变量(tu是个元祖),请实现要求的功能 tu = ("alex", [11, 22, {"k1": 'v1', "k2&q ...

  10. 常用CMD指令

    快捷方式: dcomcnfg.exe   打开windows的组件服务. regedit   打开windows的注册表的界面,进行管理. services.msc  打开service面板 calc ...