首页 技术 正文
技术 2022年11月10日
0 收藏 493 点赞 2,336 浏览 816 个字

题目大意:求$lcm(1,2,3,\cdots,n)\pmod{100000007}$,$n\leqslant10^8$

题解:先线性筛出质数,然后求每个质数最多出现的次数,可以用$\log_in$来求,$i$为该质数。使用换底公式$log_in=\dfrac{\log_2n}{\log_2i}$。

卡点:模数是$10^8+7$,看成$10^9+7$

C++ Code:

#include <algorithm>
#include <bitset>
#include <cstdio>
#include <cmath>
const int mod = 1e8 + 7;
inline int pw(int base, int p) {
static int res;
for (res = 1; p; p >>= 1, base = static_cast<long long> (base) * base % mod) if (p & 1) res = static_cast<long long> (res) * base % mod;
return res;
}std::bitset<100000010> npri;
int plist[5761460], ptot;
void sieve(const int n) {
for (register int i = 2; i <= n; ++i) {
if (!npri[i]) plist[ptot++] = i;
for (register int j = 0, t; (t = plist[j] * i) <= n; ++j) {
npri.set(t);
if (i % plist[j] == 0) break;
}
}
}int n;
long long ans = 1;
int main() {
scanf("%d", &n);
sieve(n);
for (register int i = 0; i < ptot; ++i) {
ans = ans * pw(plist[i], static_cast<int> (log2(n) / log2(plist[i]))) % mod;
}
printf("%lld\n", ans);
return 0;
}

  

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,085
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,560
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,409
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,182
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,819
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,902