社区讨论

大佬求助,为何会re

P1390公约数的和参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lod1hma5
此快照首次捕获于
2023/10/30 23:13
2 年前
此快照最后确认于
2023/11/05 09:32
2 年前
查看原帖
CPP
#include<cstdio>
#include<iostream>
using namespace std;
const int N=2e6+10;
long long f[N],s[N];
int phi[N],p[N],num;
bool v[N];
long long n;
void getphi()
{
	for(int i=2;i<N;i++)
	{
		if(!v[i]) p[++num]=i,phi[i]=i-1;
		for(int j=1;j<=num,i*p[j]<N;j++)
		{
			v[ i*p[j] ]=1;
			if(i%p[j]==0)
			{
				phi[ i*p[j] ]=phi[i]*p[j];
				break;
			}
			phi[ i*p[j] ]=phi[i]*(p[j]-1);
		}
	}
}
int main()
{
	getphi();
	for(int i=1;i<N;i++)
	for(int j=1;j<=N/i;j++)
	f[i*j]+=i*phi[j];
	for(int i=1;i<N;i++)
	s[i]=s[i-1]+f[i];
//	while(scanf("%d",&n)==1&&n)
	scanf("%lld",&n);
	printf("%lld\n",s[n]);
	return 0;
}

qwqqwq

回复

3 条回复,欢迎继续交流。

正在加载回复...