题目链接:http://codeforces.com/contest/27/problem/E

题意:问因数为n个的最小的数是多少。

题解:一般来说问到因数差不多都会想到素因子。

任意一个数x=(p1^a1)*(p2^a2)*(p3^a3)*......*(pn^an);p表示素数。

然后因子数就是ans=(a1+1)*(a2+1)*(a3+1)*....*(an+1) 这个很显然。然后要使得x最小而且ans最大

显然要优先选择最小的素数。

拿12=(2^2)*3为样例可以建一个搜索树于是dfs就可以按照这棵树来写。

//deep表示深度也就是素数的种类,sum表示组成的数,然后num表示因数个数,由于n最多为1000,2^10次为1024,所以理论上只要存10个素数就行了。

void dfs(int deep , ull sum , int num) {

if(num == n) ans = min(ans , sum);

for(int i = 1 ; i <= 1000 ; i++) {

if(num * (i + 1) > n || sum * prime[deep] > ans) break;//很明显的一个剪枝

dfs(deep + 1 , sum * prime[deep] , num * (i + 1));

sum *= prime[deep];

}

}

#include <iostream>
using namespace std;
typedef unsigned long long ull;
ull ans;
int prime[16] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53} , n;
void dfs(int deep , ull sum , int num) {
if(num == n) ans = min(ans , sum);
for(int i = 1 ; i <= 1000 ; i++) {
if(num * (i + 1) > n || sum * prime[deep] > ans) break;
dfs(deep + 1 , sum * prime[deep] , num * (i + 1));
sum *= prime[deep];
}
}
int main() {
cin >> n;
ans = ULLONG_MAX;
dfs(0 , 1 , 1);
cout << ans << endl;
return 0;
}

codeforces 27 E. Number With The Given Amount Of Divisors(数论+dfs)的更多相关文章

  1. Codeforces Beta Round #27 E. Number With The Given Amount Of Divisors 含n个约数最小数

    http://codeforces.com/problemset/problem/27/E RT,求含n个约数的最小的数 我们设答案p = 2^t1 * 3^t2 * -- * p^tk(其中p是第k ...

  2. Codeforces Beta Round #27 (Codeforces format, Div. 2) E. Number With The Given Amount Of Divisors 反素数

    E. Number With The Given Amount Of Divisors time limit per test 2 seconds memory limit per test 256 ...

  3. codeforces 27E Number With The Given Amount Of Divisors

    E. Number With The Given Amount Of Divisors time limit per test 2 seconds memory limit per test 256 ...

  4. E. Number With The Given Amount Of Divisors

    E. Number With The Given Amount Of Divisors time limit per test 2 seconds memory limit per test 256 ...

  5. Codeforces 27E. Number With The Given Amount Of Divisors (暴力)

    题目链接:http://codeforces.com/problemset/problem/27/E 暴力 //#pragma comment(linker, "/STACK:1024000 ...

  6. codeforces 27E . Number With The Given Amount Of Divisors 搜索+数论

    题目链接 首先要知道一个性质, 一个数x的因子个数等于 a1^p1 * a2^p2*....an^pn, ai是x质因子, p是质因子的个数. 然后就可以搜了 #include <iostrea ...

  7. 大家一起做训练 第一场 E Number With The Given Amount Of Divisors

    题目来源:CodeForce #27 E 题目意思和题目标题一样,给一个n,求约数的个数恰好为n个的最小的数.保证答案在1018内. Orz,这题训练的时候没写出来. 这道题目分析一下,1018的不大 ...

  8. 【数学】【CF27E】 Number With The Given Amount Of Divisors

    传送门 Description 给定一个正整数\(n\),输出最小的整数,满足这个整数有n个因子 Input 一行一个整数\(n\) Output 一行一个整数,代表答案. Hint \(1~\leq ...

  9. 数论 CF27E Number With The Given Amount Of Divisors

    求因子数一定的最小数(反素数) #include<iostream> #include<string> #include<cmath> #include<cs ...

随机推荐

  1. Bean Validation完结篇:你必须关注的边边角角(约束级联、自定义约束、自定义校验器、国际化失败消息...)

    每篇一句 没有任何技术方案会是一种银弹,任何东西都是有利弊的 相关阅读 [小家Java]深入了解数据校验:Java Bean Validation 2.0(JSR303.JSR349.JSR380)H ...

  2. Codis与RedisCluster的原理详解

    背景介绍 我们先来看一下为什么要做集群,如果我们要部署一个单节点Redis,很明显会遇到单点故障的问题. 首先能想到解决单点故障的方法,就是做主从,但是当有海量存储需求时,单一的主从结构就会出问题,说 ...

  3. Dubbo里面线程池的拒绝策略

    Dubbo里面线程池的拒绝策略 public class AbortPolicyWithReport extends ThreadPoolExecutor.AbortPolicy { protecte ...

  4. HTML5 第二章 列表和表格和媒体元素

    列表: (1)什么是列表? 列表就是信息资源的一种展示形式. (2)无序列表: 语法: <ul> <li>第1项</li> <li>第2项</li ...

  5. 创建String对象过程的内存分配

      转载自  https://blog.csdn.net/xiabing082/article/details/49759071       常量池(Constant Pool):指的是在编译期被确定 ...

  6. JavaWeb——Servlet开发2

    1.HttpServletRequest的使用 获取Request的参数的方法. 方法getParameter将返回参数的单个值 方法getParameterValues将返回参数的值的数组 方法ge ...

  7. 关于Linux的简单介绍

    Linux: 诞生日期:1991年 开发者:林纳斯·托瓦茨 特点:免费,开源    发行版本:centos|red Hat|Ubuntu|红旗等    思想:一切都是文件 重要文件目录 bin:二进制 ...

  8. JS之null与undefined的区别

    null表示尚未存在的对象 js 代码: alert(null == document.getElementById('notExistElement'));  //output "true ...

  9. 谷歌hack

    0x00 网上搜集整理的一些可能会用到的Googlehack语法 0x01 intitle: 从网页标题中搜索指定的关键字,可专门用来搜索指定版本名称的各类 web 程序,也可用 allintitle ...

  10. tensorflow学习笔记——多线程输入数据处理框架

    之前我们学习使用TensorFlow对图像数据进行预处理的方法.虽然使用这些图像数据预处理的方法可以减少无关因素对图像识别模型效果的影响,但这些复杂的预处理过程也会减慢整个训练过程.为了避免图像预处理 ...