usaco 3.2 fact4 2008.7.18

usaco 3.2 fact4 2008.7.18

{

ID:  

PROG: fact4

LANG: PASCAL

}

program p_fact4;
const fin='fact4.in';fout='fact4.out';
var n,sum,p,i,nn,n2,n5:longint;
      f1,f2:text;
begin
     assign(f1,fin);reset(f1);assign(f2,fout);rewrite(f2);
     sum:=1;read(f1,n);
     if n<=10 then begin
                         for i:=2 to n do
                           sum:=sum*i;
                        while sum mod 10=0 do sum:=sum div 10;
                        sum:=sum mod 10;
                          end
                          else
                          begin
                           nn:=0;
                            for i:=5 to n do
                              begin
                                 p:=i;
                                 while(p mod 5=0) do begin inc(nn);p:=p div 5;end;
                              end;
                            n2:=0;n5:=0;
                            for i:=2 to n do
                               begin
                                 p:=i;
                                 while (p mod 2=0)and(n2<>nn)do begin inc(n2);p:=p div 2;end;
                                 while (p mod 5=0)and(n5<>nn)do begin inc(n5);p:=p div 5;end;
                                 sum:=(sum*p) mod 10;
                               end;
                          end;
    writeln(f2,sum);
    close(f1);
    close(f2);
    end.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值