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

    1053: [HAOI2007]反素数ant

    Time Limit: 10 Sec  Memory Limit: 162 MB
    Submit: 3842  Solved: 2257
    [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

     

    结论+暴搜
    http://hzwer.com/3141.html

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int p[]={1,2,3,5,7,11,13,17,19,23,29,31};
     4 int n,ans=1,num=1;
     5 
     6 void dfs(int pos,int cnt,int now,int ls){
     7     if(pos==12){
     8         if(now>ans&&cnt>num){ans=now;num=cnt;}
     9         if(now<=ans&&cnt>=num){ans=now;num=cnt;}
    10         return;
    11     }
    12     int t=1;
    13     for(int i=0;i<=ls;i++){
    14         if(1ll*t*now>n)break;
    15         dfs(pos+1,cnt*(i+1),now*t,i);
    16         t*=p[pos];
    17     }
    18 }
    19 
    20 int main(){
    21     scanf("%d",&n);
    22     dfs(1,1,1,20);
    23     printf("%d
    ",ans);
    24     return 0;
    25 }
  • 相关阅读:
    Codeforces Round #313 (Div. 1) A.Gerald's Hexagon
    COJN 0585 800604鸡蛋的硬度
    COJN 0584 800603吃糖果
    COJN 0583 800602分苹果
    COJN 0575 800601滑雪
    昨天的补记
    重构的代码
    写了一个复杂的sql语句
    一个想法
    安装了C
  • 原文地址:https://www.cnblogs.com/wsy01/p/8324604.html
Copyright © 2011-2022 走看看