斐波那契数列满足:F1=1,F2=1,从F3开始有Fn=Fn-1 + Fn-2;
请计算GCD(F2020,F520),其中GCD(A,B)表示求A和B的最大公约数。
根据斐波那契数列最大公约数定理
GCD(Fn,Fm) = F(GCD(Fn,Fm))
#include <iostream>
using namespace std;
long long fibo(int m)
{
if(m>=3){
return fibo(m-1)+fibo(m-2);
}
else
{
return 1;
}
}
int GCD(int x,int y)
{
if(x%y != 0)
{
return GCD(y,x%y);
}
else
{
return y;
}
}
int main()
{
int f1,f2;
int i;
int fn=0;
long long ans1=0,ans2=0;
ans1=GCD(2020,520);
ans2=fibo(ans1);
cout<<ans2;
return 0;
}