Аудандық олимпиада. Информатика. 2013–2014, Этап 2, Тур 2, 8-11 сыныптар. А есебі.

Байтілеуов  Бауыржан. Жамбыл облысы, Т. Рықұлов ауданы, М. Горький атындағы  орта мектеп

Енгізу файлының аты / Имя входного файла: A.in
Шығару файлының аты / Имя выходного файла: A.out
Есептің жауабы файлының аты / Имя файла решения задачи: A.{c,cpp,pas}
Уақыт шектеу / Ограничение по времени: 2 секунд
Жадыға шектеу / Ограничение по памяти: 64 мегабайт

A есебі Факториал

N - Factorial — 1-ден N-ге дейінгі сандардың кобейтіндісі. Берілген N саны үшін, N - Factorial санының соңында қанша нөл бар екенін анықтаныз.

Мәліметтерді енгізу форматы
Енгізу файлында бір бүтін сан —  N (1 ≤ N ≤ 106) берілген.
Мәліметтерді шығару форматы
NFactorial санының соңындағы нөлдер санын шығарыңыз.
Мысал / Пример

A.in A.out Комментарий
4
6
10
0
1
2
1*2*3*4=24
1*2*3*4*5*6=720
1*2*3*4*5*6*7*8*9*10=3628800

Задача A Четные

N - Factorial — это произведение всех чисел от 1 до N. Для заданного числа N определите, сколько нулей в конце десятичной записи N - Factorial.

Формат входных данных
В единственной строке входного файла содержится одно целое положительное число N (1 ≤ N ≤ 106).
Формат выходных данных
Выведите одно целое число — количество нулей в конце десятичной записи NFactorial

Бұл есепте N санының факториалын есептеудің қажеті жоқ, факториалдың 5-ке қанша рет қалдықсыз бөлінетінін есептеу жеткілікті. Ол үшін факториалдағы әрбір көбейткіштің 5-ке қанша рет қалдықсыз бөлінетіндігін есептеп, солардың қосындысын табамыз.

program A;
var i,k,n,s,m:integer;
f,g:Text;
begin
Assign(f,’A.in’);
reset(f);
Assign(g,’A.out’);
rewrite(g);
read(f,n);
s:=0;
For i:=1 to n do
begin
m:=i;k:=0;
while k=0 do
begin
k:=m mod 5;
m:=m div 5;
if k=0 then inc(s);
end;
end;
writeln(g,s);
close(f);
close(g);
end.

Check Also

Электрондық күнделікті пайдалану туралы

Электрондық күнделікті пайдалану туралы тамаша бейнесабақ.  Өскембаева Кенже ханымның тамаша бейнесабақтары.

4 комментария

  1. Махсет Ауданов

    Есептің алгоритмі дұрыс емес. n=6 енгізгенде 0 жауабы шықты. n=10 енгізгенде жауап жоқ

  2. Махсет Ауданов

    Есептің алгоритмі дұрыс емес. n=6 енгізгенде 0 жауабы шықты. n=10 енгізгенде жауап жоқ

  3. Махсетке. Есепті тағы тексердім, дұрыс орындалып тұр.
    n=6 енгізгенде 1 жауабы шықты.
    n=10 болғанда жауабы 2
    n=30 болғанда жауабы 7
    n=300 болғанда 74
    n=2000 болғанда 499
    n=1000000 болғанда 249998
    Есепті файлдарсыз орындап көріңіз
    program A;
    var i,k,n,s,m:integer;
    begin
    read(n);
    s:=0;
    For i:=1 to n do
    begin
    m:=i;k:=0;
    while k=0 do
    begin
    k:=m mod 5;
    m:=m div 5;
    if k=0 then inc(s);
    end;
    end;
    writeln(s);
    end.

  4. Махсетке. Есепті тағы тексердім, дұрыс орындалып тұр.
    n=6 енгізгенде 1 жауабы шықты.
    n=10 болғанда жауабы 2
    n=30 болғанда жауабы 7
    n=300 болғанда 74
    n=2000 болғанда 499
    n=1000000 болғанда 249998
    Есепті файлдарсыз орындап көріңіз
    program A;
    var i,k,n,s,m:integer;
    begin
    read(n);
    s:=0;
    For i:=1 to n do
    begin
    m:=i;k:=0;
    while k=0 do
    begin
    k:=m mod 5;
    m:=m div 5;
    if k=0 then inc(s);
    end;
    end;
    writeln(s);
    end.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.