题目描述
一天,szb 在上学的路上遇到了灰太狼。
灰太狼:帮我们做出这道题就放了你。
szb:什么题?
灰太狼:求一个能被 [1,𝑛][1,n] 内所有数整除的最小数字,并对 100000007100000007 取模。
szb:这题太水了,就让我小弟来做好了。
然后你就光荣的接受了这个任务。
输入格式
一行一个数 𝑛。
输出格式
一行一个数 𝑎𝑛𝑠。
输入输出样例
输入 #1
10
输出 #1
2520
提示
𝑛≤$10^8$
满分AC代码(水)
#include<bits/stdc++.h>
using namespace std;
const long long mod=100000007;
bitset<100000005>data;//比特集合
int n,n2,o;
long long ans=1;
int main(){
cin>>n;
n2=sqrt(n);
for(int i=2;i<=n;++i){
if(!data[i]){
if(i<=n2) for(int j=i*i;j<=n;j+=i)
data[j]=1;
o=i,ans=ans*i%mod;
while(o<=n/i) o*=i,ans=ans*i%mod;
}
}
cout<<ans;
return 0;
}
我还是那么水(懒),能帮助到你吗?
已老实,求放过……