大佬求助,为何会re
查看原帖
大佬求助,为何会re
192156
Bitter_Tea楼主2020/10/30 11:59
#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

2020/10/30 11:59
加载中...