为什么一直编译错误[大哭]
  • 板块P2568 GCD
  • 楼主march_Wu175
  • 当前回复12
  • 已保存回复12
  • 发布时间2023/9/6 18:04
  • 上次更新2023/11/2 22:33:28
查看原帖
为什么一直编译错误[大哭]
725231
march_Wu175楼主2023/9/6 18:04
#include  <bits/stdc++.h>
using  namespace  std;
int  cnt,n;
int  prime[10000005],phi[10000005]={0,1};
bool tf[10000005]={1,1};
long long pre[10000005]={0},ans;
int  main(){
	 cin >>n;
	 for(int i=2;i<=n;i++){
	 	if(!tf[i]){
	 		prime[++cnt]=i;
	 		phi[i]=i-1;
		 }	
	 	for(int j=1;j<=cnt && i*prime[j]<=n;j++){
	 		tf[i*prime[j]]=1;
	 		if(i%prime[j]==0){
	 			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++){
	 	pre[i]=pre[i-1]+phi[i];
	 }
	 for(int i=1;i<=cnt && prime[i]<=n;i++){
	 	ans+=(pre[n/prime[i]]<<1)-1;
	 }
	 cout<<ans;
	 return  0;
}
2023/9/6 18:04
加载中...