Предмет: Информатика,
автор: madimarualihan
N-Factorial это произведение всех чисел от 1 до N. Для задного числа N определите сколько нулей в конце десятичной записи N-Factorial .
В единственной строке входного файла содержится одно целое положительное числа NN(1
Ответы
Автор ответа:
0
Сначала банальный код - рабочий, но уже на больших числах будет переполнение переменной факториала.
var n, i, fact, ans : integer;
begin
read(n);
fact := 1;
for i := 2 to n do
fact := fact * i;
while (fact mod 10 = 0) do begin
ans := ans + 1;
fact := fact div 10;
end;
writeln(ans);
end.
Теперь более "умный" код, в нём использован тот факт, что простое число p входит в разложение факториала числа N = [N/p] + [N/p^2] + [N/p^3] + ..., где [x] - целая часть числа x.
var n, i, fact, c, pow, ans : integer;
{c - сколько раз входит в разложение числа n! цифра 5}
begin
read(n);
pow := 5;
while (pow <= n) do begin
c += n div pow;
pow := pow * 5;
end;
writeln(c);
end.
var n, i, fact, ans : integer;
begin
read(n);
fact := 1;
for i := 2 to n do
fact := fact * i;
while (fact mod 10 = 0) do begin
ans := ans + 1;
fact := fact div 10;
end;
writeln(ans);
end.
Теперь более "умный" код, в нём использован тот факт, что простое число p входит в разложение факториала числа N = [N/p] + [N/p^2] + [N/p^3] + ..., где [x] - целая часть числа x.
var n, i, fact, c, pow, ans : integer;
{c - сколько раз входит в разложение числа n! цифра 5}
begin
read(n);
pow := 5;
while (pow <= n) do begin
c += n div pow;
pow := pow * 5;
end;
writeln(c);
end.
Похожие вопросы
Предмет: ОБЖ,
автор: korolevsema29
Предмет: Қазақ тiлi,
автор: luntik85
Предмет: Қазақ тiлi,
автор: evelinaalpysbaeva9
Предмет: Литература,
автор: aidanamarat