POJ3421 X-factor Chains【分解质因子+组合数学】
问题链接:POJ3421 X-factor Chains。
题意简述:输入正整数x,求x的因子组成的满足任意前一项都能整除后一项的序列的最大长度,以及所有不同序列的个数。
问题分析:
首先要对x进行因子分解。这样可以得到总的因子个数c,不同的因子为f1,f2,...,fn其次方数分别为e1,e2,...,en。那么,不同序列的个数为c!/(e1!e2!......en!)。
程序说明:
数组factorial[],若factorial[i]=k则k=i!,即每个元素存放其下标的阶乘值。初始化将阶乘算出来打表,避免重复计算。
那个常量N取22是应为22!还能够存储在unsigned long long类型变量中,再大就已经无法存储了。
变量fcount存储x因子的数量,变量ecount存储各个因子的次方数(重复次数)。
AC的C++语言程序如下:
/* POJ3421 X-factor Chains */#include <iostream>using namespace std;typedef unsigned long long ULL;const int N = 22;
ULL factorial[N+1] = {1};void init(int n)
{for(int i=1; i<=n; i++)factorial[i] = factorial[i - 1] * i;
}void solve(ULL x)
{ULL fcount=0, denominator=1;for(ULL i=2; i*i<=x; i++) {if(x % i == 0) {int ecount = 0;while(x % i == 0) {ecount++;x /= i;}fcount += ecount;denominator *= factorial[ecount];}}if(x > 1)fcount += 1;cout << fcount << " " << factorial[fcount] / denominator << endl;
}int main()
{init(N);ULL x;while(cin >> x)solve(x);return 0;
}
POJ3421 X-factor Chains【分解质因子+组合数学】相关推荐
- ZZULIOJ 1071:分解质因子
分解质因子 题目描述 将一个正整数分解质因数,例如,输入90,输出2 3 3 5. 输入 输入一个正整数n(2<=n<=2000). 输出 从小到大输出n的所有质因子,每两个数之间空一格. ...
- ZZULIOJ:1071: 分解质因子
1071: 分解质因子 时间限制: 1 Sec 内存限制: 128 MB [状态] [讨论版] [提交] [命题人:admin] 题目描述 将一个正整数分解质因数,例如,输入90,输出2 3 3 5 ...
- 等式(分解质因子求因子个数)
链接: https://www.nowcoder.com/acm/contest/90/F 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...
- PAT甲级1059 Prime Factors :[C++题解]分解质因子
文章目录 题目分析 题目链接 题目分析 暴力求质因数 下面i就是质因子,s是质因子i的阶数. 暴力的时间复杂度O(n),会超时 void divide(int n){for(int i=2;i< ...
- 1072: 分解质因子
时间限制: 1 Sec 内存限制: 128 MB 题目描述 将一个正整数分解质因数,例如,输入90,输出2 3 3 5. 输入 输入一个正整数n(2<=n<=2000). 输出 从小到大 ...
- 求一个数的最小素因子外加快速分解质因子
这种方法使用与数据小于1e7, 这种适用于分解1到n所有数的质因子,而且打印出来是从小到大排好序的 首先找到每个数的最小质因子,不停的除以最小素因子,只到x==1 如果是分解单个还是根号n复杂度的更好 ...
- 关于求1~n中与m互质的数的个数(容器原理+数论分解质因子)
D. Count GCD 这道题严格来讲不难,a[i]与b[i+1]最大公约数为a[i+1],所以a[i]与b[i+1]必定整除a[i+1],且a[i]/a[i+1]与b[i+1]/a[i+1]互质, ...
- UVA-10212 The Last Non-zero Digit. 分解质因子+容斥定理
这个是参考了别人之后的代码,POJ上0MS过了.Orz......对于一个序列在提取了2,5之后,例如1,2,3,4,5,6,7,8,9,10,我们可以将其中的奇数和偶数分开来对待,对于偶数序列2,4 ...
- hdu 5428(分解质因子)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5428 题意:给你N个数,让你求出这N个数最小的因子之积,但要满足一个条件,那就是这个乘积必须包含三个因 ...
最新文章
- Java 虚拟机总结给面试的你(下)
- 线程互斥与同步 在c#中用mutex类实现线程的互斥_Golang 并发编程与同步原语
- iview日期控件 双向绑定日期
- 应用服务器web服务器_最受欢迎的应用服务器
- 盒子模型阴影设置,爱奇艺阴影配置
- node命令错误--nodemon : 无法将“nodemon”项识别
- 在Pandas DataFrame中重塑数据
- leetcode刷题——415. 字符串相加
- 计算机考研英语复试如何准备,如何准备考研英语复试听力?
- 自动化测试项目实战训练【广州8月】
- EXTJS源码分析与开发实例-原创2章下载
- 3串口多串口双串口以及2串口转WiFi多跳路由通讯实现一
- 5G承载网需求与技术实现
- 区块链开发者平台-u deserved it
- DolphinDB Database丨 最简最快的WorldQuant 101 Alpha因子实现
- WIN7 经典“致命错误 C0000034”解决方法
- 拉拉米抢单发单系统源码+二开ui带视频介绍+ 放量功能
- 疫情防控大数据分析模型搭建考虑因素
- 基于V4L2的视频驱动开发
- System Generator从入门到放弃(十)-ADC应用之音频信号采集与输出
热门文章
- Arcgis Javascript那些事儿(五)--arcgis server发布自定义比例尺地图
- jquery跨域调用webService
- 八款开源Android 游戏引擎介绍
- 计算机一级wps视频教程,计算机一级WPS
- python程序画漂亮图_用python画图代码:正弦图像、多轴图等案例
- mybatis添加方法可以传map吗_Mybatis创建方式二
- bootstrap的表单验证 vue_分享几个基于Vue的UI库和开源项目
- 网络映射连接不上_Mac连接不上无线网络的解决方法
- 面包屑php源码,自己写的面包屑导航
- java金字塔显示_java控制台输出数字金字塔示例分享