Cod sursa(job #717208)

Utilizator Walrus21andrei Walrus21 Data 19 martie 2012 19:03:34
Problema Al k-lea termen Fibonacci Scor 20
Compilator fpc Status done
Runda Arhiva educationala Marime 0.71 kb
program fibonacci;

var n:longint;

function fib(n:longint):int64;
var pFib,cFib,nFib:int64;
    i:longint;
begin
pFib:=0;
cFib:=1;
if n=1 then fib:=1;
if n=0 then fib:=0
       else
        for i:=1 to n-1 do
         begin
          nFib:=pFib+cFib;
          pFib:=cFib;
          cFib:=nFib;
          fib:=cFib;
          if pFib>=666013 then pFib:=pFib mod 666013;
          if fib>=666013 then
           begin
            fib:=fib mod 666013;
            cFib:=cFib mod 666013;
            nFib:=nFib mod 666013;
           end;
        end;
end;

begin
assign(input,'kfib.in'); reset(input);
assign(output,'kfib.out'); rewrite(output);
read(n);
write(fib(n));
close(output);
end.