Cod sursa(job #2516987)

Utilizator Narcis09Grecu Narcis Narcis09 Data 2 ianuarie 2020 18:16:53
Problema Al k-lea termen Fibonacci Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.44 kb
#include <fstream>
using namespace std;
typedef long unsigned lu;
lu m=666013;

lu f(lu n){
	if (n==0) return 0;
	if (n<3) return 1;
	lu k;
	if (n%2==0){
		k=n/2;
		lu fk=f(k);
		return ((2*f(k-1)+fk)*fk)%m;
	}
	if (n%2){
		k=(n+1)/2;
		lu fk=f(k), fk1=f(k-1);
		return (fk*fk+fk1*fk1)%m;
	}
	return 0;
}
		

int main()
{
	ifstream cin("kfib.in");
	ofstream cout("kfib.out");
	lu n;
	cin>>n;
	cout<<f(n);
/*	cin.close();
	cout.close();*/
	return 0;
}