zoukankan      html  css  js  c++  java
  • 1053: [HAOI2007]反素数ant

    1053: [HAOI2007]反素数ant

    Time Limit: 10 Sec  Memory Limit: 162 MB
    Submit: 3480  Solved: 2036
    [Submit][Status][Discuss]

    Description

      对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。如果某个正整数x满足:g(x)>g(i) 0<i<x
    ,则称x为反质数。例如,整数1,2,4,6等都是反质数。现在给定一个数N,你能求出不超过N的最大的反质数么

    Input

      一个数N(1<=N<=2,000,000,000)。

    Output

      不超过N的最大的反质数。

    Sample Input

    1000

    Sample Output

    840
    /*
    * @Author: LyuC
    * @Date:   2017-09-05 16:14:29
    * @Last Modified by:   LyuC
    * @Last Modified time: 2017-09-06 22:01:36
    */
    /*
     题意:对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。如果某个正整数x满足:g(x)>g(i) 0<i<x
        ,则称x为反质数。例如,整数1,2,4,6等都是反质数。现在给定一个数N,求出不超过N的最大的反质数
    
     思路:分解质因子之后,质因子排列组合,就是一个数因子的个数,将所有的质因子按照系数优先级建树,然后爆搜
        一开始想的是,找因子数最大的那个,如果因子数相同取大的,这种想法是错的,应该取小的,因为取大的就不满
        足,g(x)>g(i)了
    */
    
    #include <bits/stdc++.h>
    
    #define MAXP 17
    
    #define LL long long
    
    using namespace std;
    
    LL n;
    int prime[MAXP]={1,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47};
    LL res;
    LL res_num;
    
    inline void dfs(int deep,LL tmp,LL num){//深度,当前数,因子个数
        if(deep>=16||tmp>n)//遍历完了素数 
            return ;
        if(num>res_num){
            res_num=num;
            res=tmp;
        }else if(num==res_num){
            if(tmp<res){
                res=tmp;
            }
        }
        for(int i=1;i<=63;i++){
            if(tmp*prime[deep]>n) break;
            dfs(deep+1,tmp*=prime[deep],num*(i+1));
        }
    }
    
    inline void init(){
        res=1;
        res_num=-1;
    }
    
    int main(){ 
        // freopen("in.txt","r",stdin);
        init();
        scanf("%lld",&n);
        dfs(1,1,1);
        printf("%lld
    ",res);
        return 0;
    }
  • 相关阅读:
    apt-get指令的autoclean,clean,autoremove的区别
    储备的小站——更新中
    apk解包——修改后缀为zip
    Linux系统调用(syscall)原理(转)
    CMakeLists.txt的写法
    android 文件读取(assets)
    linux 如何显示一个文件的某几行(中间几行)
    Android四大组件的生命周期
    Android中View绘制流程以及invalidate()等相关方法分析(转)
    struct和typedef struct彻底明白了
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/7487222.html
Copyright © 2011-2022 走看看