Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- const int MX=1e5+5;
- typedef long long ll;
- vector<set<int>> adj;
- bool prime[MX];
- void seive()
- {
- for(int i=2;i<MX;i++)
- {
- if(prime[i])continue;
- for(int j=2*i;j<MX;j+=i)
- {
- prime[j]=1;
- adj[j].insert(i);
- }
- }
- }
- int n,ar[MX],vis[MX];
- int main()
- {
- adj.resize(MX+5);
- seive();
- cin>>n;
- for(int i=0;i<n;i++)
- {
- scanf("%d",ar+i);
- if(prime[ar[i]]==0)vis[ar[i]]++;
- for(auto u : adj[ar[i]])
- vis[u]++;
- }
- int ans=0;
- for(int i=2;i<MX;i++)
- ans=max(ans,vis[i]);
- cout<<max(ans,1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement