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; }


     

  • 相关阅读:
    Android Widget桌面组件创建
    Android 音乐播放器。
    android 创建实时文件夹
    Android 中访问网页 webView
    Android 添加快捷方式
    Android闹钟设置
    Android中webView与javascript交互
    Android 通信的桥梁 Intent
    Android 中Notification和NotificationManager的使用
    Android中播放视频
  • 原文地址:https://www.cnblogs.com/yezekun/p/3925766.html
Copyright © 2011-2022 走看看