Написать программу, определяющую последнюю ненулевую цифру числа 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.

image_pdfСкачать ответimage_printРаспечатать решение

Добавить комментарий

Похожие вопросы от пользователей