整除
题目描述
牛牛对整除非常感兴趣。牛牛的老师给他布置了一道题:牛牛的老师给出一个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;
}

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号