求调
查看原帖
求调
482610
Mortidesperatslav楼主2023/10/5 11:33
#include<bits/stdc++.h>
using namespace std;
int t;
bool vis[1000005];
int varphi[1000005];
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	long long n,sum=0,func=0;
	n=1000000;
	for(register int i=1;i<=n;i++)varphi[i]=i;
	for(register int i=2;i<=n;i++){
		if(vis[i]==1){continue;}
		for(register int j=i;j<=n;j+=i){
			vis[j]=1;
			varphi[j]=(varphi[j]/i)*(i-1);
		}
	}
	varphi[2]=1;
	cin>>t;
	while(t-->0){
		int ans=0;
		cin>>n;
		if(n==1){
			cout<<"1\n";
			continue;
		}
		for(int i=1;i*i<=n;i++)if(n%i==0)if(i*i!=n)ans+=varphi[i]*i/2+varphi[n/i]*(n/i)/2;else ans+=varphi[i]*i/2;
		cout<<ans*n<<"\n";
	}
}
2023/10/5 11:33
加载中...