题目链接:https://www.luogu.org/problemnew/show/P1306#sub
gcd(f[m],f[n]) = f[gcd(m,n)]
1 #include <iostream> 2 #include <algorithm> 3 #include <cstdio> 4 using namespace std; 5 const int maxn = 1000001; 6 long long n, m; 7 long gcd(long long x, long long y) 8 { 9 if(x%y == 0) return y; 10 else return gcd(y,x%y); 11 } 12 long long f[maxn] = {0,1,1}; 13 int main() 14 { 15 scanf("%lld%lld",&n,&m); 16 long long mn = gcd(n,m); 17 18 for(int i = 3; i <= mn; i++) 19 f[i] = (f[i-1] + f[i-2])%100000000; 20 21 printf("%lld",f[mn]); 22 }