思路:筛法。将所有因子个数求出,答案就是最大的因子个数,注意全为1的特殊情况。
代码:
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back const int N=1e5+5; int vis[N]={0}; int main() { ios::sync_with_stdio(false); cin.tie(0); int n,a; cin>>n; for(int i=0;i<n;i++) { cin>>a; for(int j=1;j*j<=a;j++) { if(a%j==0) { vis[j]++; if(j*j!=a)vis[a/j]++; } } } int ans=1; for(int i=2;i<N;i++)ans=max(ans,vis[i]); cout<<ans<<endl; return 0; }