fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. const int N=1e6+5;
  5. int cnt[N];
  6. int good[N];
  7. vector<int> snt;
  8. void sieve()
  9. {
  10. for(int a=2;a<=1e6;a++){
  11. good[a]=1;
  12. }
  13. for(int a=2;a<=1e6;a++){
  14. if(good[a]){
  15. for(int b=a*2;b<=1e6;b+=a){
  16. good[b]=0;
  17. }
  18. }
  19. }
  20. for(int a=0;a*a<=1e12;a++){
  21. if(good[a]) snt.push_back(a);
  22. }
  23. }
  24. signed main()
  25. {
  26. ios_base::sync_with_stdio(false);
  27. cin.tie(0);
  28. cout.tie(0);
  29. int n;
  30. cin>>n;
  31. int A[n];
  32. sieve();
  33. for(int a=0;a<n;a++){
  34. cin>>A[a];
  35. }
  36. for(int a=0;a<n;a++){
  37. for(int b=0;b<snt.size();b++){
  38. if(A[a]%snt[b]==0) cnt[b]++;
  39. if(snt[b]>A[a]) break;
  40. }
  41. }
  42. int mx=0;
  43. for(int a=0;a<snt.size();a++){
  44. mx=max(mx,cnt[a]);
  45. }
  46. cout<<mx;
  47. }
  48.  
Success #stdin #stdout 0.02s 13748KB
stdin
4
4 5 8 20
stdout
3