#include
using namespace std;
const int maxn = 1000;
struct stackk {
int niza[maxn];
int idx;
void init() {
idx = -1;
}
void push(int x) {
if(idx + 1 >= maxn) {
cout << "NEMA DOVOLNO KAPACITET" << endl;
return;
}
idx++;
niza[idx] = x;
}
int pop() {
if(idx == -1) {
cout << "NEMA NITU EDEN ELEMENT VO STEKOT" << endl;
return -1;
}
int result = niza[idx];
idx--;
return result;
}
int top() {
if(idx == -1) {
cout << "NEMA NITU EDEN ELEMENT VO STEKOT" << endl;
return -1;
}
return niza[idx];
}
int size() {
return idx + 1;
}
int isEmpty() {
if(idx == -1) {
return 1;
}
else {
return 0;
}
}
};
void promeni(stackk & m1) {
stackk m2;
m2.init();
while(m1.isEmpty() == false) {
m2.push(m1.pop());
}
stackk nad;
nad.init();
while(m2.isEmpty() == false) {
int c = m2.pop();
if(nad.isEmpty() == false) {
if(c % nad.top() == 0) {
m1.push(c / nad.top());
}
}
nad.push(c);
if(m2.isEmpty() == false) {
if(c % m2.top() == 0) {
m1.push(c / m2.top());
}
}
}
}
int main() {
stackk m1;
m1.init();
m1.push(2);
m1.push(10);
m1.push(5);
m1.push(2);
m1.push(1);
promeni(m1);
while (!m1.isEmpty()) {
cout << m1.pop() << endl;
}
return 0;
}