WA on #5求调
查看原帖
WA on #5求调
770891
NTT__int128楼主2024/10/14 11:49

代码:

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=1e5+5;
ll n,a,pr[N],sum;
bitset<N>p;
void init(){
    for(ll i=2;i<=N-5;i++){
        if(!p[i])pr[++sum]=i;
        for(ll j=1;j<=sum&&i*pr[j]<=N-5;j++){
            p[i*pr[j]]=1;
            if(!(i%pr[j]))break;
        }
    }
}
ll phi(int x){
	ll s=x;
	for(ll i=1;pr[i]*pr[i]<=x;i++)
		if(x%pr[i]==0){
			s=s/pr[i]*(pr[i]-1);
			while(x%pr[i]==0)x/=pr[i];
		}
	if(x>1)s=s/x*(x-1);
	return s;
}
int main(){
	init();
	cin>>n;
	for(ll i=1;i*i<=n;i++)
		if(n%i==0){
			a+=i*phi(n/i);
			if(i*i<n)a+=n/i*phi(i); 
		}
	cout<<a;
	return 0;
}
2024/10/14 11:49
加载中...