代码
#include <bits/stdc++.h>
#define N 100000020
#define mod 1000000007
using namespace std;
int n, pri[6000000], cnt, ans = 1;
bitset<N> mark;
void getPri(int x){
for(int i = 2; i <= x; i++){
if(!mark[i])pri[++cnt]=i;
for(int j = 1; j <= cnt && pri[j]*i <= x; j++){
mark[pri[j]*i] = 1;
if(i%pri[j]==0)break;
}
}
}
int main(){
scanf("%d", &n);
getPri(n);
for(int i = 1, x; i <= cnt; i++){
x = pri[i];
while(x*pri[i] <= n) x*=pri[i];
ans = (long long)ans*x%mod;
}
printf("%d\n", ans);
}
信息
- 递交者
- 类型
- 递交
- 题目
- 篝题
- 语言
- C++
- 递交时间
- 2017-05-02 07:57:18
- 评测时间
- 2017-05-02 08:08:28
- 评测机
- 分数
- 0
- 总耗时
- 0ms
- 峰值内存
- 0 Bytes