求助,为什么会CE?
查看原帖
求助,为什么会CE?
114206
111l楼主2020/10/28 20:47
#include<cstdio>
const int sz=2e6+1;
long long n,phi[sz]={0,1};
long long t;
int main(){
	scanf("%lld",&n);
	for(int i=2;i<=n;i++){
		if(phi[i]) continue;
		for(int j=i;j<=n;j+=i){
			if(!phi[j]) phi[j]=j;
			phi[j]=phi[j]/i*(i-1);
		}
	}
	for(int i=1;i<=n;i++) phi[i]+=phi[i-1];
	for(int l=1,r;l<=n;l=r+1){
		r=n/(n/l);
		t+=(phi[r]-phi[l-1])*(n/l)*(n/l);
	}
	t=(t-(n*(n+1)/2))/2;
	printf("%lld",t);
}

无视效率低下的求phi值,为什么我的sz开1e6不CE开到2e6就CE了?

2020/10/28 20:47
加载中...