洛谷 P1306 斐波那契公约数
题目大意:求gcd(fib(n),fib(m))
这个题就是结论题:
gcd(fib(n),fib(m))=fib(gcd(n,m))
没什么可说的。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<vector>
#include<queue>
#define ll long long
using namespace std;
ll n,m;
int gcd(ll a,ll b){
if(b==0)return a;
return gcd(b,a%b);
}
ll a[10000001];
int main(){
scanf("%lld %lld",&n,&m);
ll p=gcd(n,m);
a[1]=1;
a[2]=1;
for(int i=3;i<=p;i++){
a[i]=(a[i-1]+a[i-2])%100000000;
}
printf("%lld",a[p]);
return 0;
}