Какое-то запутанное условие.
Решение "в лоб", без оптимизаций:
Procedure Razmen(a : Integer);
Begin
If a>=500 then
Begin
Writeln('500 - ',a div 500);
Razmen(a-(a div 500)*500);
end
else
If a>=100 then
Begin
Writeln('100 - ',a div 100);
Razmen(a-(a div 100)*100);
end
else
If a>=50 then
Begin
Writeln('50 - ',a div 50);
Razmen(a-(a div 50)*50);
end
else
If a>=10 then
Begin
Writeln('10 - ',a div 10);
Razmen(a-(a div 10)*10);
end
else
If a>=5 then
Begin
Writeln('5 - ',a div 5);
Razmen(a-(a div 5)*5);
end
else Writeln('1 - ',a);
end;
Begin
Razmen(1530);
end.