Witam,
kod reprezentujący stos.
#include <iostream>
#include <string>
using namespace std;
struct Item {
string value;
Item *lower; };
Item *top=0;
void push (string value) {
Item *auxiliary=top;
top=new Item ();
top->value=value;
top->lower=auxiliary; }
string pop () {
string value=top->value;
Item *auxiliary=top->lower;
delete top;
top=auxiliary;
return value; }
int main () {
string word;
while (cin>>word)
push (word);
while (top)
cout<<pop ()<<" ";
cout<<endl;
return 0; }
Ja to widzę tak utwórz taką strukturę Item. Wpisz do niej te elementy, które nie są funkcjami(takie masz zadanie). Podczas pierwszej pętli while() dodajesz liczbę, zamiast bezpośredniego dodawanie na stos musisz stworzyć kod, który po podaniu pewnej liczbę rozbije je na dzielniki i doda je na stos. Analogicznie jest z funkcją pop(), którą wywołujesz by wyświetlić elementy. Podsumowując zamiast bezpośrednich funkcji wywołuj to co jest pomiędzy {} i postaraj się stworzyć kod, który 'rozbije' liczbę na dzielniki. Może to Ci pomoże.
Pozdrawiam