Написать программу, определяющую последнюю ненулевую цифру числа N!=1*2*3*…*N.
Вопрос посетителя
Написать программу, определяющую последнюю ненулевую цифру числа N!=1*2*3*…*N.
Ответ эксперта
var
n, i, j, k, km, f : integer;
begin
assign(input,’input.txt’); reset(input);
read(n);
f:=1;
km:=0; k:=5;
while n div k>0 do begin km:=km+n div k; k:=k*5 end;
for i:=2 to n do
begin
j:=i;
while j mod 5 =0 do j:=j div 5;
while (km>0) and (j mod 2 =0) do begin km:=km-1; j:=j div 2 end;
f:=(f*(j mod 10)) mod 10
end;
assign(output,’output.txt’); rewrite(output);
write(f)
end.