【luogu P1306 斐波那契公约数】 题解

题目链接: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 }

隐约雷鸣,阴霾天空,但盼风雨来,能留你在此。

隐约雷鸣,阴霾天空,即使天无雨,我亦留此地。

原文地址:https://www.cnblogs.com/MisakaAzusa/p/8693058.html