整除
题目描述
牛牛对整除非常感兴趣。牛牛的老师给他布置了一道题:牛牛的老师给出一个n,然后牛牛需要回答出能被1到n之间(包括1和n)所有整数整除的最小的数。牛牛犯了难,希望你能编程帮他解决这个问题。
输入描述
输入包括一个整数n(1<=n<=100000)
输出描述
输出一个整数,即满足要求的最小整数。答案可能很大,请输出这个整数对于987654321取模的结果
输入示例
3
输出示例
6
#include<bits/stdc++.h>
using namespace std;
const int maxn=100000+5;
int tmp[maxn];
int n;
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
int k=i;
for(int j=2;j*j<=n;j++){
int s=0;
while(k%j==0){
s++;
k/=j;
}
tmp[j]=max(tmp[j],s);
}
if(k>1)
tmp[k] = max(tmp[k],1);
}
long long res=1;
for(int i=1;i<=100000;i++){
for(int j=0;j<tmp[i];j++){
res = res*i%987654321;
}
}
cout<<res<<endl;
return 0;
}