zoukankan      html  css  js  c++  java
  • ZOJ 2562 反素数

    本次,学到了反素数相关知识,也更深地了解了DFS递归搜索。

    以不同素数来进行分层搜索,指数用来每层可以选择的。

    #include<iostream> using namespace std; long long prime[15]={2,3,5,7,11,13,17,19,23,29,31,37,39,41,43}; long long ans;long long maxmi;long long  n; void dfs(long long x,long long mi,long long  k,long long  limit) {     if(k==15)return;     //k代表层,也代表第K+1个素数     if(x>n)return;            if(mi>maxmi)       //  每次大于则更新     {         maxmi=mi;         ans=x;     }     if(mi==maxmi)     // 相等时时候,取小的     {         if(x<ans)           ans=x;     }     for(int i=1;i<=limit;i++)  // limit是对指数的限制最后2^50次,并用下面的I传递来保证递减性!     {         x*=prime[k];                    if(x>n)return;        //此处不忘跳出。         mi*=(i+1);         dfs(x,mi,k+1,i);         mi=mi/(i+1);          //同层的要变回。     } } int main() {

        while(cin>>n)     {          ans=0;maxmi=0;          dfs(1,1,0,50);          cout<<ans<<endl;     }     return 0; }


     

  • 相关阅读:
    centos7安装nginx和php7启动脚本
    centos7 安装nginx遇到的坑
    php7.2 编译遇到的坑
    yum源更新
    redis
    nginx日志分割
    Docker部署LNMP完整教程
    浅谈JavaScript词法分析步骤
    PHP面向对象中的重要知识点(一)
    Mysql精华版(命令大全)
  • 原文地址:https://www.cnblogs.com/yezekun/p/3925766.html
Copyright © 2011-2022 走看看