结论:gcd(F[n],F[m])=F[gcd(n,m)];
F[n]=a和F[n+1]=b
F[n+2]=a+b,F[n+3]=a+2b,…F[m]=F[m?n?1]a+F[m?n]b
F[n]=a,F[n+1]=b,F[m]=F[m?n?1]a+F[m?n]
F[m]=F[m?n?1]?F[n]+F[m?n]?F[n+1]
gcd(F[n],F[m])=gcd(F[n],F[m?n?1]?F[n]+F[m?n]?F[n+1])
gcd(F[n],F[m])=gcd(F[n],F[m?n]?F[n+1])
引理:gcd(F[n],F[n+1])=1
证明:gcd(F[n],F[n+1])=gcd(F[n],F[n+1]?F[n])=gcd(F[n],F[n?1])=......=gcd(f[1],f[2]);
gcd(F[n],F[n+1])=1;
gcd(F[n],F[m])=gcd(F[n],F[m?n]?F[n+1]);
gcd(F[n],F[m])=gcd(F[n],F[m?n]);
即gcd(F[n],F[m])=gcd(F[n],F[mmodn]);
则gcd(F[n],F[m])=gcd(F[nmodm1],F[m1]);
不难发现,整个递归过程其实就是在求解gcd(n,m)
最后递归到出现F[0],那么此时的f[n]就是答案;
gcd(F[n],F[m])=F[gcd(n,m)];