zoukankan      html  css  js  c++  java
  • zoj 2562 More Divisors

    典型的反素数

    对于任何正整数x,其约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0<i<x),都有g(i)<g(x),则称x为反素数·

    性质一:一个反素数的质因子必然是从2开始连续的质数.
    性质二:p=2^t1*3^t2*5^t3*7^t4.....必然t1>=t2>=t3>=....
     
     
     1 #include <iostream>
     2 using namespace std;
     3 
     4 typedef long long ll;
     5 
     6 int pri[20]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47};
     7 
     8 ll n;
     9 ll ans,s;
    10 
    11 void dfs (ll num,ll k,ll sum,ll limit){  //num:当前枚举到的数,k:枚举到的第k大的质因子;sum:该数的约数个数;limit:质因子个数上限;
    12 if (sum>s||(sum==s&&num<ans))  //s:结果的约数个数;ans:结果;
    13 s=sum,ans=num;
    14 if (k>14)
    15 return ;
    16 for (int i=1;i<=limit;i++){
    17 num*=pri[k];
    18 if (num>n)
    19 break ;
    20 dfs (num,k+1,sum*(i+1),i);
    21 
    22 }
    23 return ;
    24 }
    25 
    26 int main (){
    27 while (cin>>n){
    28 s=0;
    29 dfs (1,0,1,50);
    30 cout<<ans<<endl;
    31 }
    32 return 0;
    33 }
  • 相关阅读:
    timerfd与eventfd
    boost--asio
    boost--线程
    boost--线程同步
    C++11--lambda表达式
    Java数据类型中String、Integer、int相互间的转换
    Jsoup网页抓取
    线程池
    Java
    用cmd来向mysql导入sql文件
  • 原文地址:https://www.cnblogs.com/gfc-g/p/3842623.html
Copyright © 2011-2022 走看看