1 条题解

  • 3
    @ 2024-10-3 12:34:32

    水题!!别被迷惑了!!(如果写了一大堆还WA了,面壁思过一下

    思路:

    1. 找出所有数的最大gcdgcd,记为cntcnt;
    2. 遍历一遍,看看有几个数等于cntcnt,设为x,则答案为nxn-x

    没什么可说的,上代码!

    #include<bits/stdc++.h>
    using namespace std;
    int gcd(int x,int y){
        if(y==0)return x;
        return gcd(y,x%y);
    }
    int a[200005];
    int main(){
        freopen("magic.in","r",stdin);
        freopen("magic.out","w",stdout);
        int n;cin>>n;
        cin>>a[1];
        int cnt=a[1];
        for(int i=2;i<=n;i++){//找所有数的gcd
            cin>>a[i];
            cnt=gcd(cnt,a[i]);
        }
        int ans=n;
        for(int i=1;i<=n;i++){
            if(a[i]==cnt)ans--;
        }
        cout<<ans;
    }
    

    看完了点个绿色的赞再走噢,蟹蟹!

    • 1

    信息

    ID
    772
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    84
    已通过
    29
    上传者