【整除分块+等差数列求和】牛客练习赛77 C.小G的约数

博客探讨了如何高效计算G(n)的值,即所有小于等于n的数的约数和之和。通过分析F(n)为n的约数和的公式,提出利用整除分块方法和等差数列求和公式来优化计算过程,以降低时间复杂度。具体以G(6)为例,展示了如何应用这种方法简化计算并得出答案27。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

约数和

小G的约数

题目大意

两个函数F(n)为n的约数和,G(n)为F(1)+F(2)+…+F(n-1)+F(n)。求G(G(n))等于多少。

解题思路

首先可以知道,对于 n n n F ( n ) = ∑ i = 1 n ⌊ n i ⌋ × i F(n)=\sum_{i=1}^n \lfloor \frac ni \rfloor \times i F(n)=i=1nin×i

如求 G ( 6 ) G(6) G(6),用暴力解法为:
G ( 6 ) = F ( 1 ) + F ( 2 ) + F ( 3 ) + F ( 4 ) + F ( 5 ) + F ( 6 ) = ( 1 ) + ( 1 + 2 ) + ( 1 + 3 ) + ( 1 + 2 + 4 ) + ( 1 + 5 ) + ( 1 + 2 + 3 + 6 ) = ⌊ 6 1 ⌋ × 1 + ⌊ 6 2 ⌋ × 2 + ⌊ 6 3 ⌋ × 3 + ⌊ 6 4 ⌋ × 4 + ⌊ 6 5 ⌋ × 5 + ⌊ 6 6 ⌋ × 6 = 27 \begin{aligned} G(6) &= F(1)+F(2)+F(3)+F(4)+F(5)+F(6) \\ &=(1)+(1+2)+(1+3)+(1+2+4)+(1+5)+(1+2+3+6) \\ &=\lfloor \frac 61 \rfloor \times 1+\lfloor \frac 62 \rfloor \times 2+\lfloor \frac 63 \rfloor \times 3+\lfloor \frac 64 \rfloor \times 4+\lfloor \frac 65 \rfloor \times 5+\lfloor \frac 66 \rfloor \times 6\\ &=27 \end{aligned} G(6)=F(1)+F(2)+F(3)+F(4)+F(5)+F<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值