• bzoj 3643: Phi的反函数


    3643: Phi的反函数

    Time Limit: 10 Sec  Memory Limit: 64 MB

    Description

    Input

     

    Output

     

    Sample Input

    4

    Sample Output

    5

    HINT

     

    Source

    Tips:

      自己也没怎么搞懂;

    Code:

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<iostream>
    #define MAXN 200008
    using namespace std;
    long long n,m,prime[MAXN],tot,flag[MAXN],ans;
    
    void init(){
        for(long long i=2;i<=MAXN-8;i++){
            if(!flag[i]){
                flag[i]=1;
                prime[++tot]=i;
            }
            for(long long j=1;j<=tot&&i*prime[j]<=MAXN-8;j++){
                flag[i*prime[j]]=1;
                if(i%prime[j]==0) break;
            }
        }
    }
    
    bool check(long long u){
        for(int i=1;prime[i]*prime[i]<=u;i++){
            if(u%prime[i]==0) return 0;
        }
        return 1;
    }
    
    void dfs(long long x,long long y,long long z){
        if(z>=ans) return;
        if(y==1){
            ans=min(ans,z);
            return;
        }
        if(y*y>n&&check(y+1)){
            ans=min(ans,z*(y+1));
            return;
        }
        for(int i=x;prime[i]-1<=y&&(prime[i]-1)*(prime[i]-1)<=n;i++)
        if(y%(prime[i]-1)==0){
            long long xx=y    /(prime[i]-1);
            long long yy=z*prime[i];
            dfs(i+1,xx,yy);
            while(xx%prime[i]==0){
                xx=xx/prime[i];
                yy=yy*prime[i];
                dfs(i+1,xx,yy);
            }
        }
    }
    
    int main(){
        tot=0;
        ans=(long long)1<<31;
        init();
        scanf("%lld",&n);
        dfs(1,n,1);
        if(ans==(long long)1<<31){
            printf("-1");
        }else{
            printf("%lld",ans);
        }
    }
  • 相关阅读:
    UITextField editingDidEnd 不调用(不响应)
    修改 Navigation Bar 返回按钮文字和图片
    HTTPS抓包
    brew 基本使用方法
    Linux基本命令
    AR 初探
    汇编学习
    ios GCD ---- (1)
    axios导出或者下载
    Vue绑定图片src出现的问题
  • 原文地址:https://www.cnblogs.com/WQHui/p/7536850.html
Copyright © 2020-2023  润新知