AB为什么这么水,不知道,是我变强了吗?那必然不是。哈哈哈
C题
-
题目链接
Here -
题意
-
思路
gcd的本质还是因子,所以看/gcd之后的最多个数质因子即可。 -
代码
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=3e5+10;
int n,a[N],gd,mx,m,mp[15000010],up,vis[15000010],res=0x3f3f3f3f;
signed main(){
cin>>n;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]),gd=__gcd(gd,a[i]),m=max(m,a[i]);
if(m==gd) return puts("-1"),0;
for(int i=1;i<=n;i++) mp[a[i]/gd]++,up=max(up,a[i]/gd);
for(int i=2;i<=up;i++){
int sum=0;
if(!vis[i]){
for(int j=i;j<=up;j+=i) vis[j]=1,sum+=mp[j];
}
res=min(res,n-sum);
}
cout<<res;
return 0;
}