#include <iostream>
#include <algorithm>
using namespace std;
int mdiv(int n)
{
if (n%2 == 0) return 2;
for(unsigned int i = 3; i*i <= n; i+=2)
if (n%i == 0) return i;
return n;
}
int main()
{
int N[60];
for(int i = 0; i < 60; ++i) N[i] = rand()%100+2;
sort(N,N+60,[](int a, int b){ int m = mdiv(a), n = mdiv(b);
return m < n ? true : m > n ? false : a < b; });
for(int i = 0; i < 60; ++i) cout << N[i] << " ";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtZGl2KGludCBuKQp7CiAgICBpZiAobiUyID09IDApIHJldHVybiAyOwogICAgZm9yKHVuc2lnbmVkIGludCBpID0gMzsgaSppIDw9IG47IGkrPTIpCiAgICAgICAgaWYgKG4laSA9PSAwKSByZXR1cm4gaTsKICAgIHJldHVybiBuOwp9CgppbnQgbWFpbigpCnsKICAgIGludCBOWzYwXTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCA2MDsgKytpKSBOW2ldID0gcmFuZCgpJTEwMCsyOwogICAgc29ydChOLE4rNjAsW10oaW50IGEsIGludCBiKXsgaW50IG0gPSBtZGl2KGEpLCBuID0gbWRpdihiKTsKICAgICAgICAgICAgICAgcmV0dXJuIG0gPCBuID8gdHJ1ZSA6IG0gPiBuID8gZmFsc2UgOiBhIDwgYjsgfSk7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgNjA7ICsraSkgY291dCA8PCBOW2ldIDw8ICIgICI7Cgp9Cg==