请问dalao这是什么问题
查看原帖
请问dalao这是什么问题
371984
RC·阿柒楼主2022/1/17 08:27

先看代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define N 40001
int p[N],k,phi[N],np[N];
void pri()
{
    phi[1]=1,np[1]=1;
    for(int i=2;i<N;i++)
    {
        if(!np[i])
        {
            p[++k]=i;
            phi[i]=i-1;
        }
        for(int j=1;j<=k&&i*p[j]<N;j++)
        {
            np[i*p[j]]=1;
            if(!(i%p[j]))
            {
                phi[i*p[j]]=phi[i]*p[j];
                break;
            }
            phi[i*p[j]]=phi[i]*(p[j]-1);
        }
    }
}
signed main(){
    pri();
    int n,ans;
    cin>>n;
    if(n==1)
    {
        cout<<"0"<<endl;
        return 0;
    }
    for(int i=1;i<n;i++)
    {
        ans+=phi[i];
    }
    cout<<(ans<<1|1)<<endl;
	return 0;
}

我的程序在本地运行时样例输出11 但是却AC了

2022/1/17 08:27
加载中...