Pastry

版权声明:未经过同意不得转载 https://blog.csdn.net/qq_42500298/article/details/88096314

在这里插入图片描述在这里插入图片描述
我们可以把这些都看成简分数,只需要看1/d中d是否存在就行了,就比如说d=3是,不管分子是多少,把他分成三等份有1/3就有2/3,因此标记一下每个ai的所有因子就行了。注意这里判断d是否存在的时候要写成for(int j=i;j<maxn;j+=i)

#include<bits/stdc++.h>
using namespace std;
const int maxn=200005;
int ans,a,n,g[maxn],vis[maxn];
int main()
{
 cin>>n;
 for(int i=1;i<=n+1;++i)
 {
  cin>>a;
  vis[a]=1;
 }
 for(int i=2;i<maxn;i++)
 {
  g[i]+=i-1;
  int flag=0;
  for(int j=i;j<maxn;j+=i)
  {
   if(vis[j])
    flag=1;
   if(i!=j)
    g[j]-=g[i];
  }
  if(flag)
   ans+=g[i];
 }
 cout<<ans<<endl;
 return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42500298/article/details/88096314