hdu3977 - fibonacci模p的周期

本文探讨了Fibonacci数模p的周期性质,包括N(ab)与N(a), N(b)的关系,以及质数p^k时的周期公式。对于质数p,当p%5=1或4时,周期为p-1的因子;当p%4=2或3时,周期为2*(p-1)的因子。通过矩阵乘法可以有效计算Fibonacci数的模p值。" 87971188,8265097,React从零到实战:开发TodoList,"['React.js', 'Redux', '前端开发']
摘要由CSDN通过智能技术生成


假设N(m)为模m的周期,则有

N(ab)=lcm(N(a),N(b)),其中gcd(a,b)=1; /*这里证明使用了fibo数的性质,

N(p^k)=N(p)*p^(k-1),其中p为质数   /*论文里这个没有证明,但是验证了10^14内的都满足

对于质数p,其周期可以推算得出:

当p%5=1或4时,它是p-1的因子

当p%4=2或3时,它是2*(p-1)的因子


如果便只用验证因子是否是循环节就行。


求fibo数,可以使用矩阵乘法,


#include<stdio.h>
#include<string.h>
#include<math.h>
#define maxp 1000000
#define LL long long

LL P;
int pri[maxp+10];
int b[maxp+10];
int tot;

struct data {
    int p,t;
    LL r;
} q[500];
int qt;

LL fab[15];

void getprime()
{
    memset(b,0,sizeof(b));
    tot = 0;
    int i=2;
    while (i<=maxp) {
        while (b[i] && i<=maxp)
            i++;
        pri[++tot]=i;
        int j=i;
        while (j<=maxp) {
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值