#include <iostream>
using namespace std;
bool yes(int a) {
if (a < 0) a = -a; // на всякий случай, если есть отрицательные
if (a < 2) return false; // 0 и 1 не простые
for (int i = 2; i < a; i++) {
if (a % i == 0) return false;
}
return true;
}
int main() {
int n;
cin >> n;
int* a = new int[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int moved = 0; // сколько простых уже перенесли в НАЧАЛО
int i = n - 1; // идём строго справа налево
while (i >= moved) { // не заходим в уже перенесённую "зону начала"
if (yes(a[i])) {
int t = a[i]; // запомнили простое число
// сдвигаем все элементы слева от i на 1 вправо,
// чтобы освободить место в a[0]
for (int j = i; j > 0; j--) {
a[j] = a[j - 1];
}
a[0] = t; // вставили простое в самое начало
moved++; // зона "уже вставленных" простых увеличилась
// ВАЖНО: i НЕ уменьшаем!
// потому что после сдвига в позицию i пришёл новый элемент,
// его тоже нужно проверить
} else {
i--; // если не простое — просто идём дальше влево
}
}
for (int k = 0; k < n; k++) {
cout << a[k] << " ";
}
delete[] a;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCB5ZXMoaW50IGEpIHsKICAgIGlmIChhIDwgMCkgYSA9IC1hOyAgICAgIC8vINC90LAg0LLRgdGP0LrQuNC5INGB0LvRg9GH0LDQuSwg0LXRgdC70Lgg0LXRgdGC0Ywg0L7RgtGA0LjRhtCw0YLQtdC70YzQvdGL0LUKICAgIGlmIChhIDwgMikgcmV0dXJuIGZhbHNlOyAvLyAwINC4IDEg0L3QtSDQv9GA0L7RgdGC0YvQtQoKICAgIGZvciAoaW50IGkgPSAyOyBpIDwgYTsgaSsrKSB7CiAgICAgICAgaWYgKGEgJSBpID09IDApIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHJldHVybiB0cnVlOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBuOwogICAgY2luID4+IG47CgogICAgaW50KiBhID0gbmV3IGludFtuXTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICB9CgogICAgaW50IG1vdmVkID0gMDsgICAgIC8vINGB0LrQvtC70YzQutC+INC/0YDQvtGB0YLRi9GFINGD0LbQtSDQv9C10YDQtdC90LXRgdC70Lgg0LIg0J3QkNCn0JDQm9CeCiAgICBpbnQgaSA9IG4gLSAxOyAgICAgLy8g0LjQtNGR0Lwg0YHRgtGA0L7Qs9C+INGB0L/RgNCw0LLQsCDQvdCw0LvQtdCy0L4KCiAgICB3aGlsZSAoaSA+PSBtb3ZlZCkgeyAgICAgICAgICAgICAgLy8g0L3QtSDQt9Cw0YXQvtC00LjQvCDQsiDRg9C20LUg0L/QtdGA0LXQvdC10YHRkdC90L3Rg9GOICLQt9C+0L3RgyDQvdCw0YfQsNC70LAiCiAgICAgICAgaWYgKHllcyhhW2ldKSkgewogICAgICAgICAgICBpbnQgdCA9IGFbaV07ICAgICAgICAgICAgIC8vINC30LDQv9C+0LzQvdC40LvQuCDQv9GA0L7RgdGC0L7QtSDRh9C40YHQu9C+CgogICAgICAgICAgICAvLyDRgdC00LLQuNCz0LDQtdC8INCy0YHQtSDRjdC70LXQvNC10L3RgtGLINGB0LvQtdCy0LAg0L7RgiBpINC90LAgMSDQstC/0YDQsNCy0L4sCiAgICAgICAgICAgIC8vINGH0YLQvtCx0Ysg0L7RgdCy0L7QsdC+0LTQuNGC0Ywg0LzQtdGB0YLQviDQsiBhWzBdCiAgICAgICAgICAgIGZvciAoaW50IGogPSBpOyBqID4gMDsgai0tKSB7CiAgICAgICAgICAgICAgICBhW2pdID0gYVtqIC0gMV07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGFbMF0gPSB0OyAgICAgICAgICAgICAgICAgLy8g0LLRgdGC0LDQstC40LvQuCDQv9GA0L7RgdGC0L7QtSDQsiDRgdCw0LzQvtC1INC90LDRh9Cw0LvQvgogICAgICAgICAgICBtb3ZlZCsrOyAgICAgICAgICAgICAgICAgIC8vINC30L7QvdCwICLRg9C20LUg0LLRgdGC0LDQstC70LXQvdC90YvRhSIg0L/RgNC+0YHRgtGL0YUg0YPQstC10LvQuNGH0LjQu9Cw0YHRjAoKICAgICAgICAgICAgLy8g0JLQkNCW0J3QnjogaSDQndCVINGD0LzQtdC90YzRiNCw0LXQvCEKICAgICAgICAgICAgLy8g0L/QvtGC0L7QvNGDINGH0YLQviDQv9C+0YHQu9C1INGB0LTQstC40LPQsCDQsiDQv9C+0LfQuNGG0LjRjiBpINC/0YDQuNGI0ZHQuyDQvdC+0LLRi9C5INGN0LvQtdC80LXQvdGCLAogICAgICAgICAgICAvLyDQtdCz0L4g0YLQvtC20LUg0L3Rg9C20L3QviDQv9GA0L7QstC10YDQuNGC0YwKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpLS07ICAgICAgICAgICAgICAgICAgICAgIC8vINC10YHQu9C4INC90LUg0L/RgNC+0YHRgtC+0LUg4oCUINC/0YDQvtGB0YLQviDQuNC00ZHQvCDQtNCw0LvRjNGI0LUg0LLQu9C10LLQvgogICAgICAgIH0KICAgIH0KCiAgICBmb3IgKGludCBrID0gMDsgayA8IG47IGsrKykgewogICAgICAgIGNvdXQgPDwgYVtrXSA8PCAiICI7CiAgICB9CgogICAgZGVsZXRlW10gYTsKICAgIHJldHVybiAwOwp9Cg==