Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define MAX 3035
- using namespace std;
- ifstream fin("divimax.in");
- ofstream fout("divimax.out");
- int nr,divm,n,C,maxp;
- vector<string> arr;
- int maxPrimeFactors(int x)
- {
- int maxPrime=-1;
- while(x%2==0)
- {
- maxPrime=2;
- x>>=1;
- }
- for(int d=3;d*d<=x;d+=2)
- {
- while(x%d==0)
- {
- maxPrime=d;
- x=x/d;
- }
- }
- if(x>2)
- maxPrime=x;
- return maxPrime;
- }
- int myCompare(string X,string Y)
- {
- string XY=X.append(Y);
- string YX=Y.append(X);
- return XY.compare(YX)>0?1:0;
- }
- int main()
- {
- fin>>C;
- fin>>n;
- for(int i=1;i<=n;++i)
- {
- fin>>nr;
- divm=maxPrimeFactors(nr);
- string stri=to_string(divm);
- arr.push_back(stri);
- if(divm>maxp)
- maxp=divm;
- }
- if(C==1)
- {
- fout<<maxp;
- return 0;
- }
- sort(arr.begin(),arr.end(),myCompare);
- for(unsigned int i=0;i<arr.size();++i)
- fout<<arr[i];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement