ZJU 2562 More Divisors (反素数)
来源:互联网 发布:人工智能的伦理困境 编辑:程序博客网 时间:2024/05/22 10:12
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1562
题 意:找出小于n且因子数最多的数。
思 路:一个数 A 可以分解成 p1k1 * p2k2 * …… * pnkn 其中p为素数。这样分解之后,A的因子个数S = (k1+1) *( k2+1) * …… *( kn+1)然后用dfs枚举 + 剪枝可以得到s的值。可以在枚举所有小于n的A的s值,最后得到最大值。
代码如下:
#include <iostream>using namespace std;#include <string.h>#include <stdio.h>#include <climits>#include <algorithm>typedef long long LL;LL ans;LL ans1;LL n;const LL pr[16]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53};void DFS( LL k, LL num, LL now ){ if( k >= 16 ) return; if( now > n ) return; if( num > ans && now <= n ) { ans = num; ans1 = now; //return; } if( ans == num && ans1 > now ) ans1 = now; for( int i = 1; i <= 64; i ++ ) { if( now * pr[k] <= n ) { DFS( k+1, num*(i+1), now*=pr[k] ); } else break; }}const LL MAX = 1e18+9;int main(){ while( scanf ( "%lld", &n ) != EOF ) { ans = 0; ans1 = MAX; DFS(0,1,1); printf("%lld\n",ans1); } return 0;}
0 0
- ZJU 2562 More Divisors (反素数)
- zoj 2562 More Divisors(反素数)
- ZOJ More Divisors 2562 (反素数)
- More Divisors(反素数)
- More Divisors----反素数
- ZOJ 2562 More Divisors 解题报告(反素数)
- Zoj 2562 More Divisors (反素数)
- zoj 2562 More Divisors(反素数)
- ZOJ 2562 More Divisors 反素数 DFS
- ZOJ2562:More Divisors(反素数)
- ZOJ Problem Set - 2562 More Divisors 反素数
- zju 2562 反素数
- zoj2562--More Divisors(反素数模板)
- zoj2562 More Divisors && CF27E. Number With The Given Amount Of Divisors(反素数)
- 反素数(题目Divisors)
- 反素数应用 ZOJ 2562 More Divisors + Timus OJ 1748. The Most Complex Number
- Andrew Stankevich Contest 10 D More Divisors 反素数
- ZOJ_2562_More Divisors(反素数)
- 基本概念——类和对象
- CodeForces 453A-周赛4补题
- Eclipse 快捷键大全
- vim常用快捷键
- C语言-7
- ZJU 2562 More Divisors (反素数)
- Android如何防止apk程序被反编译
- 从输入 URL 到页面加载完的过程中都发生了什么事情?
- Java实现单链表的一些常用操作
- C语言-8
- Python - 2
- 利用const_cast进行类型转换
- 快照与AMI的区别
- 迭代(遍历)时候不可以使用集合的remove和add方法,但可使用Java迭代器的remove和add方法