SP5971 T了求调QAQ
  • 板块学术版
  • 楼主Imaginative
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/31 00:00
  • 上次更新2024/3/31 10:05:36
查看原帖
SP5971 T了求调QAQ
761684
Imaginative楼主2024/3/31 00:00

RT

这份代码 P1891P1891 能过,但不知道为什么被SP5971SP5971 卡了

P1891最慢的也只有 293ms293ms link

代码如下,求求各位大佬们QAQ

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int t;
bool check[N];
int phi[N],prime[N],pos=0;
long long res[N];
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>t;
	phi[1]=1;
	for(int i=2;i<=N;i++){
		if(!check[i]){
			prime[pos++]=i;
			phi[i]=i-1;
		}
		for(int j=0;j<pos;j++){
			if(1ll*i*prime[j]>N) break;
			check[i*prime[j]]=1;
			if(!(i%prime[j])){
				phi[i*prime[j]]=phi[i]*prime[j];
				break;
			}
			else{
				phi[i*prime[j]]=phi[i]*(prime[j]-1);
			}
		}
	}
	for(int i=1;i<=N;i++){
		for(int j=1;1ll*i*j<=N;j++){
			if(i==1) res[i*j]+=1;
			else res[i*j]+=1ll*phi[i]*i/2; 
		}
	}
	while(t--){
		int n; 
		cin>>n;
		cout<<1ll*res[n]*n<<endl;
	}
	return 0;
} 
2024/3/31 00:00
加载中...