zoukankan      html  css  js  c++  java
  • [swustoj 373] Antiprime数

    Antiprime数(0373)

    问题描述

    如果一个自然数n(n>=1),满足所有小于n的自然数(>=1)的约数个数都小于n的约数个数,则n是一个Antiprime数。譬如:1, 2, 4, 6, 12, 24。 
    任务: 
    编一个程序: 
    计算不大于n的最大Antiprime数。 

    输入

    输入只有一个整数,n(1 <= n <= 2 000 000 000)

    输出

    输入只有一个整数,n(1 <= n <= 2 000 000 000)

    样例输入

    1000

    样例输出

    840

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    #include <cstdio>
    using namespace std;
    #define pb push_back
    #define ll long long
    #define INF 0x3f3f3f3f
    #define N 2000000000
    
    ll n;
    ll res;
    ll fac;
    ll prime[]={2,3,5,7,11,13,17,19,23,29};
    
    void dfs(ll x,ll y,ll z,ll last)
    {
        if(x>=10){
            if(z>fac) res=y,fac=z;
            if(z==fac && y<res) res=y,fac=z;
            return;
        }
        for(ll i=0;i<=last;i++){
            if(y>n) break;
            dfs(x+1,y,z*(i+1),i);
            y*=prime[x];
        }
    }
    int main()
    {
        while(scanf("%lld",&n)!=EOF)
        {
            res=fac=0;
            dfs(0,1,1,INF);
            cout<<res<<endl;
        }
        return 0;
    }
  • 相关阅读:
    Java 异常
    【转】Java 内部类总结
    【转】Java中的static关键字解析
    【转】事务及事务隔离级别
    【转】事务并发的问题
    【转】hibernate对象三种状态
    iOS指南针
    CoreLocation 定位
    swift 2.2 语法 (下)
    swift 2.2 语法 (中)
  • 原文地址:https://www.cnblogs.com/hate13/p/4599844.html
Copyright © 2011-2022 走看看