MnZn求助,代码不知道为什么编译失败
  • 板块P2568 GCD
  • 楼主Dzhao
  • 当前回复12
  • 已保存回复12
  • 发布时间2020/10/25 14:58
  • 上次更新2023/11/5 09:55:12
查看原帖
MnZn求助,代码不知道为什么编译失败
108610
Dzhao楼主2020/10/25 14:58
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e7+5;
int n,prm[N],m,v[N]={1,1};
ll sum[N],ans,phi[N];
 
int main()
{
	scanf("%d",&n);
	for(int i=2;i<=n;i++) 
	{
		if(!v[i])
		{
			v[i]=i,prm[++m]=i;
			phi[i]=i-1;
		}
		for(int j=1;j<=m;j++)
		{
			if(prm[j]>v[i] || prm[j]>n/i) break;
			v[i*prm[j]]=prm[j];
			phi[i*prm[j]]=phi[i]*(i%prm[j]?prm[j]-1:prm[j]);
		}
	}
	for(int i=1;i<=n;i++) sum[i]=sum[i-1]+phi[i];
	for(int i=1;i<=m;i++) ans+=2*sum[n/prm[i]]+1;
	printf("%lld\n",ans);
	return 0;
}

我用这代码交了另一道题也是编译失败,不知道为什么qwq

2020/10/25 14:58
加载中...