uva 11582 Colossal Fibonacci Numbers!

Posted 日拱一卒 功不唐捐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uva 11582 Colossal Fibonacci Numbers!相关的知识,希望对你有一定的参考价值。

https://vjudge.net/problem/UVA-11582

 

题意:求 斐波那契数列第a^b 项 %n的余数

a,b < 2^64,n<1000

 

找循环节,最多n^2项一定会出现循环节

 

#include<cstdio>
using namespace std;
typedef unsigned long long LL;
int f[1000010];
void read(LL &x)
{
    x=0; char c=getchar();
    while(c<0||c>9) c=getchar();
    while(c>=0 && c<=9) { x=x*10+c-0; c=getchar(); }
}
int main()
{
    int T;
    scanf("%d",&T);
    LL a,b; int n;
    while(T--)
    {
        read(a); read(b); scanf("%d",&n);
        if(n==1) { printf("0\n"); continue; }
        f[1]=f[2]=1;
        int i;
        for(i=3;;i++)
        {
            f[i]=(f[i-2]+f[i-1])%n;
            if(f[i]==1 && f[i-1]==0) break;
        }
        i--;
        int g=1;  a%=i;
        for(;b;b>>=1,a=a*a%i) 
         if(b&1) g=g*a%i;
        printf("%d\n",f[g]);
    }
}
 

 

以上是关于uva 11582 Colossal Fibonacci Numbers!的主要内容,如果未能解决你的问题,请参考以下文章

UVA - 11582 Colossal Fibonacci Numbers!循环节

UVa 11582 - Colossal Fibonacci Numbers!(数论)

Colossal Fibonacci Numbers! UVA - 11582

uva11582 Colossal Fibonacci Numbers!

UVA11582 Colossal Fibonacci Numbers!

UVa 11582 Colossal Fibonacci Numbers! 大数幂取模