Пример на продукте - бананы
program v1;
var m,n,sum,t:integer;
st1:string[10];
begin
sum:=0; t:=0;
writeln('Здравствуйте');
writeln('Банан красного цвета стоит 2500, банан синего цвета стоит 3000, банан черного цвета стоит 3700');
writeln('Сколько купите бананов '); readln(n);
writeln('Введите цвет бананов '); readln(st1);
if (st1='Красного') or (st1='красного') or (st1='Красный') or (st1='красный') then sum:=3000*n;
if (st1='Синего') or (st1='синего') or (st1='Синий') or (st1='синий') or (st1='Синей') or (st1='синей') then sum:=2500*n;
if (st1='Черного') or (st1='черного') or (st1='Чёрного') or (st1='чёрного') or (st1='Черный') or (st1='черный') or (st1='чёрный') or (st1='Чёрный') then sum:=3700*n;
writeln('Сумма покупки ', sum);
writeln('Введите сумму'); readln(m);
t:=m-sum;
writeln('Возьмите сдачу ',t);
writeln('Всего доброго, приходите еще');
end.
будет массив Na=(2, 1, 0, 1, 0, 0,...). Еще такой же массив отводишь под сами простые числа. После получения разложения N начинается цикл: берем очередное число i и из Na вычитаем его разложение (пробегаемся по простым числам, если i делится, то делим и вычитаем 1 в соотв. элементе массива, пробуем снова). Цикл заканчивается, когда все элементы Na отрицательны или равны 0, это значит, что факториал последнего i содержит все простые числа в степени не меньшей чем N, т.е. i! делится на N.