文章

37

粉丝

1

获赞

311

访问

5.9k

头像
约数求和 题解:
P1814 复旦大学机试
发布于2026年3月2日 11:09
阅读数 75

#include<bits/stdc++.h>
using namespace std;

int main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	
	int n;
	cin>>n;
	long long ans = 0;
	//n/i:在1~n中,能当i的倍数的有几个
	//eg:n=10,i=3,在1~10中,能当3的倍数的只有3,6,9
	//其实相当于3*1,3*2...3*m,要使得3*m小于n,且m取得最大
	//那么就是3*m < n 移项得:m < n/3
	for(int i = 1 ; i <= n ; i++){
		ans += (n/i)*i;
	}
	cout<<ans<<'\n';
	
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发