AtCoder Beginner Contest 172 D - Sum of Divisors(类似素数筛)

题目链接:https://atcoder.jp/contests/abc172/tasks/abc172_d

题意:给定一个n,f(x)表示x的因子数量,求

题解:可以类比素数筛,素数筛是从2开始把它所有的倍数都划去,这边也可以用这种思想,从1开始枚举到1e7,将每个数的倍数对应的因子个数+1.

代码:

#include
using namespace std;
typedef long long ll;
const int maxn=1e7+10;
ll p[maxn];

int main()
{
	for(ll i=1;i>n;ll ans=0;
	for(ll i=1;i<=n;i++){
		if(i==1) ans++;
		else ans+=(p[i]+1)*i;
	}
	cout<

 

你可能感兴趣的:(AtCoder Beginner Contest 172 D - Sum of Divisors(类似素数筛))