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

定义

同余定理是数论四大基本定理之一,在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

相关推荐

过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务