• #线性筛,质数#LOJ 6165 一道水题


    题目

    ((lcm_{i=1}^ni)mod 10^8+7,nleq 10^8)


    分析

    考虑对于某个质数(p),在(n)范围内做出的最大贡献为(p^k(p^kleq n))
    线性筛出所有质数求它的最大指数幂再相乘即可


    代码

    #include <cstdio>
    #define rr register
    using namespace std;
    const int N = 100000007;
    int prime[N], n, ans, Cnt;
    bool v[N];
    signed main() {
        scanf("%d", &n), ans = 1;
        for (rr int i = 2; i <= n; ++i) {
            if (!v[i]) {
                prime[++Cnt] = i;
                rr int t = n;
                while (t >= i) t /= i, ans = 1ll * ans * i % N;
            }
            for (rr int j = 1; j <= Cnt && prime[j] <= n / i; ++j) {
                v[i * prime[j]] = 1;
                if (i % prime[j] == 0)
                    break;
            }
        }
        return !printf("%d", ans);
    }
    
  • 相关阅读:
    Django基础(一)
    CSS
    HTML
    python之路_面向对象
    python之路第六篇
    python之路第四篇
    python之路第三篇
    python之路第二篇
    python之路第一篇
    hdu 3551(一般图的匹配)
  • 原文地址:https://www.cnblogs.com/Spare-No-Effort/p/13845194.html
Copyright © 2020-2023  润新知