Zdravím potřeboval bych poradit s následujícím problémem :

Kolika způsoby zapsat číslo n (n < 30000) pomocí sčítanců 1, 5, 10, 25, 50.


long work(int s){
int pade,dvacky,petky,bura;
for(pade=0;pade<=(s/50);pade++)
for(dvacky=0;dvacky<=(s-pade*50)/25;dvacky++)
for(petky=0;petky<=(s-pade*50-dvacky*25)/10;petky++)
count += 1+(s-pade*50-dvacky*25-petky*10)/5;
return s;
}

tato funkce je časově náročná pro čísla blížící se 30000. Potřeboval bych to napsat efektivněji.

Poradí někdo ? Díky