ZOJ 2562 More Divisors 反素数 DFS
来源:互联网 发布:交换机端口电压 编辑:程序博客网 时间:2024/05/22 07:51
题解看代码系列。
和HDU4228类似。
传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1562
//素数表 prime{0,2,3,5,7,11,13,17,19};//如果一个数num = prime ^ (2 * n - 1) (基数的情况) 则它的因子数为 2 * n ;//如果一个数num = prime ^ (2 * n ) (偶数的情况) 则它的因子数为 2 * n + 1; (prime 是一个质素);//x = prime[1]^( k1 - 1 ) * prime[2] * ( k2 - 1 ) * prime[3] * ( k3 - 1 ) * ... * prime[n] * ( kn - 1 );//因子数为k , k = k1 * k2 * k3 * ... * kn;//找出比 N 小的 最小的 x 使得 k 最大;//k1 >= k2 >= k3 >= ... >= kn;#include <cmath>#include <cstdio>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>using namespace std;long long prime[20] = {0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53};long long n;long long INF = (long long) 1 << 60;long long numk;long long totn ;long long fast_pow(int x,int k) {long long base = x;long long ans = 1;while(k) {if(k & 1) ans *= base;base *= base;k >>= 1;}return ans;}void DFS(int depth,long long num,int lim ,long long tot) {//depth 搜素深度//num 因子数//lim 是下个因子的最大数目//tot 数的大小 //printf("depth : %d num : %lld tot : %lld\n",depth,num,tot); //printf("totn : %lld numk : %lld\n",totn,numk);if(tot > n) return ;if(tot <= 0) return ;if(num == numk && tot < totn) {totn = tot;}if(num > numk) {totn = tot;numk = num;}for(int i = 2 ; i <= lim; i++) {//枚举每层k值得大小;DFS(depth+1,num * i, i ,tot * fast_pow(prime[depth],i-1) );}}void Deal_with() {while(~scanf("%lld",&n)) {numk = 0; totn = INF;//printf("totn : %lld numk : %lld\n",totn,numk);DFS(1,1,50,1);printf("%lld\n",totn);}}int main(void) {//freopen("a.in","r",stdin);Deal_with();return 0;}
0 0
- ZOJ 2562 More Divisors 反素数 DFS
- zoj 2562 More Divisors(反素数)
- Zoj 2562 More Divisors (反素数)
- zoj 2562 More Divisors(反素数)
- ZOJ More Divisors 2562 (反素数)
- ZOJ 2562 More Divisors 解题报告(反素数)
- ZOJ Problem Set - 2562 More Divisors 反素数
- More Divisors----反素数
- ZJU 2562 More Divisors (反素数)
- 反素数应用 ZOJ 2562 More Divisors + Timus OJ 1748. The Most Complex Number
- More Divisors(反素数)
- zoj 2562 More Divisors
- Zoj 2562 More Divisors
- zoj 2562 More Divisors
- zoj 2562 More Divisors
- 【ZOJ 2562】 More Divisors
- zoj2562--More Divisors(反素数模板)
- ZOJ2562:More Divisors(反素数)
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- POJ 3126 Prime Path
- RHEL7安装
- 用python爬虫抓站的一些技巧总结
- HTML简介
- ZOJ 2562 More Divisors 反素数 DFS
- HDU 1556 Color the ball(线段树)
- PASSION之CSS常用操作
- 0-C相关01:NSlog函数介绍。
- MPICH2在windows7下的并行计算与拓展项目
- I/O流实现图片压缩
- 单链表翻转的几种写法
- 移植u-boot-2015.07-rc3之修改代码支持串口(三)
- jquery下的ajax