【nowcoder 218396】小G的sum

数学或数论 同时被 2 个专栏收录
182 篇文章 1 订阅
89 篇文章 0 订阅

小G的sum

题目链接:nowcoder 218396

到牛客看:

——>点我跳转<——

题目大意

求 1~n 中每个数最小的约数和最大的约数的和。

思路

大家都知道,一个数最小的约数是 1 1 1,最大的约数是它自己。

那就是等于 ∑ i = 1 n ( 1 + i ) \sum\limits_{i=1}^{n}(1+i) i=1n(1+i),然后化简一下:
n + ( 1 + n ) × n / 2 = 2 × n / 2 + ( 1 + n ) × n / 2 = ( 3 + n ) × n / 2 n+(1+n)\times n/2=2\times n/2+(1+n)\times n/2=(3+n)\times n/2 n+(1+n)×n/2=2×n/2+(1+n)×n/2=(3+n)×n/2

然后就可以 O ( 1 ) O(1) O(1) 求了。

代码

#include<cstdio>

using namespace std;

int n;

int main() {
	scanf("%d", &n);
	
	printf("%lld", 1ll * n * (n + 3) >> 1ll);
	
	return 0;
}
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值