Advertisement
a53

divimax

a53
Jan 28th, 2020
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define MAX 3035
  3. using namespace std;
  4. ifstream fin("divimax.in");
  5. ofstream fout("divimax.out");
  6. int nr,divm,n,C,maxp;
  7. vector<string> arr;
  8.  
  9. int maxPrimeFactors(int x)
  10. {
  11. int maxPrime=-1;
  12. while(x%2==0)
  13. {
  14. maxPrime=2;
  15. x>>=1;
  16. }
  17. for(int d=3;d*d<=x;d+=2)
  18. {
  19. while(x%d==0)
  20. {
  21. maxPrime=d;
  22. x=x/d;
  23. }
  24. }
  25. if(x>2)
  26. maxPrime=x;
  27. return maxPrime;
  28. }
  29.  
  30. int myCompare(string X,string Y)
  31. {
  32. string XY=X.append(Y);
  33. string YX=Y.append(X);
  34. return XY.compare(YX)>0?1:0;
  35. }
  36.  
  37. int main()
  38. {
  39. fin>>C;
  40. fin>>n;
  41. for(int i=1;i<=n;++i)
  42. {
  43. fin>>nr;
  44. divm=maxPrimeFactors(nr);
  45. string stri=to_string(divm);
  46. arr.push_back(stri);
  47. if(divm>maxp)
  48. maxp=divm;
  49. }
  50. if(C==1)
  51. {
  52. fout<<maxp;
  53. return 0;
  54. }
  55. sort(arr.begin(),arr.end(),myCompare);
  56. for(unsigned int i=0;i<arr.size();++i)
  57. fout<<arr[i];
  58. return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement