具体数学读书笔记之同余定理

定义

同余定理是数论四大基本定理之一,在acm中常常用到,他的表达形式为a≡b (mod m)。这代表着a与b关于m同余,读作a同余于b模m

应用

同余定理常常配合其他数论算法使用,单独考察同余的地方不多,一般是对1e9+ 7求余以确保答案在32位整数范围内

练习题

https://v4t.jk1507.cn/problem.php?pid=3899

#include <stdio.h>
#include <string.h>

#define N 11000
#define MOD 1000000007

typedef long long LL;

LL qpow(LL a, LL b) {
    if (b == 0) return 1;
    if (b == 1) return a % MOD;

    LL ans = qpow(a, b / 2);
    ans = ans * ans % MOD;
    if (b & 1) ans = ans * a % MOD;
    return ans % MOD;
}

int main() {
    LL n, m;
    while (scanf("%lld%lld",&n, &m) == 2) {
        LL sum = 0;
        for (LL i = 1; i <= n; ++i) {
            sum = (sum + qpow(i, m)) % MOD;
        }
        printf("%lld\n",sum % MOD);
    }
    return 0;
}
#笔记##读书笔记#
全部评论
快速幂的时候,递归不如递推😂
点赞 回复 分享
发布于 2019-04-08 14:56

相关推荐

10-28 11:04
已编辑
美团_后端实习生(实习员工)
一个2人:我说几个点吧,你的实习经历写的让人觉得毫无含金量,你没有挖掘你需求里的 亮点, 让人觉得你不仅打杂还摆烂。然后你的简历太长了🤣你这个实习经历看完,估计没几个人愿意接着看下去, sdk, 索引这种东西单拎出来说太顶真了兄弟,好好优化下简历吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务