• Source
    1. #include "bits/stdc++.h"
    2. #define MAX 1000000
    3.  
    4. using namespace std;
    5.  
    6. int divisor[MAX],ans[MAX];
    7.  
    8. void solve()
    9. {
    10. int i,j,num,mx;
    11.  
    12. for(i=1;i<=MAX;i++)
    13. {
    14. for(j=i;j<=MAX;j+=i)
    15. {
    16. divisor[j]++;
    17. }
    18. }
    19.  
    20. num = 1;
    21.  
    22. mx = 1;
    23.  
    24. for(i=1;i<=MAX;i++)
    25. {
    26. if(mx<=divisor[i])
    27. {
    28. mx = divisor[i];
    29.  
    30. num = i;
    31.  
    32. ans[i] = i;
    33. }
    34. else
    35. {
    36. ans[i] = num;
    37. }
    38. }
    39. }
    40.  
    41. int main()
    42. {
    43. int test,n,i,j;
    44.  
    45. solve();
    46.  
    47. scanf("%d",&test);
    48.  
    49. while(test--)
    50. {
    51. scanf("%d",&n);
    52.  
    53. printf("%d\n",ans[n]);
    54. }
    55.  
    56. return 0;
    57. }