zoukankan      html  css  js  c++  java
  • 病毒(唯一分解定理+欧拉筛)

    chen_03 会制造电脑病毒。

    有人把 Jay 的电脑植入了病毒,而要解除病毒,Jay 要回答一道题。

    在电脑屏幕上有一个数n ,Jay 被要求输入一个正整数,这个数能被[1,n]内所有数整除,并且要保持这个数最小,因为这个数可能很大,所以只要输出对109+7取模的结果就行了。

    然而 Jay 成功的破解了病毒,并将病毒植入了你的电脑上。

    然后你就不得不开始解这道题。

    输入

    输入一个正整数n。

    输出

    输出一个正整数表示答案。

    样例输入 Copy

    10
    

    样例输出 Copy

    2520

    提示

     
     
     
     
     
    #include<bits/stdc++.h> 
    using namespace std;
    typedef long long ll; 
    inline int read()
    {
        int x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    #define pi 3.14159265358979323846
    const int INF=0x3f3f3f3f;
    const int mod=1e9+7;
    const int maxn=1e8+100;
    const int maxa=521;
    int n,cnt,p[100000];
    bool vis[maxn]; 
    int main(){
        cin>>n;
        ll ans=1;
        for(int i=2;i<=n;i++){
            if(!vis[i]){
                p[cnt++]=i;
                for(ll t=i;t<=n;t*=i){
                    ans=ans*i%mod;
                }
            }
            for(int j=0;j<cnt&&i*p[j]<=n;j++){
                vis[i*p[j]]=1;
                if(i%p[j]==0){
                    break;
                }
            }
        }
        cout<<ans;
    } 
  • 相关阅读:
    Ubuntu18.04安装配置
    Ubuntu Terminal「控制台」
    Ubuntu16.04系统安装
    UEFI Install CentOS 7
    安装Ubuntu16.04后要做的事
    Ubuntu Google Chrome
    Nuke Linux Crack
    Selenium3自动化测试实战 基于Python语言
    函数基础
    Jenkins持续集成
  • 原文地址:https://www.cnblogs.com/lipu123/p/13068856.html
Copyright © 2011-2022 走看看