洛谷 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;
}
posted @ 2017-09-16 11:59  玫葵之蝶  阅读(89)  评论(0编辑  收藏  举报