问题链接: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【分解质因子+组合数学】相关推荐

  1. ZZULIOJ 1071:分解质因子

    分解质因子 题目描述 将一个正整数分解质因数,例如,输入90,输出2 3 3 5. 输入 输入一个正整数n(2<=n<=2000). 输出 从小到大输出n的所有质因子,每两个数之间空一格. ...

  2. ZZULIOJ:1071: 分解质因子

    1071: 分解质因子 时间限制: 1 Sec  内存限制: 128 MB [状态] [讨论版] [提交] [命题人:admin] 题目描述 将一个正整数分解质因数,例如,输入90,输出2 3 3 5 ...

  3. 等式(分解质因子求因子个数)

    链接: https://www.nowcoder.com/acm/contest/90/F 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...

  4. PAT甲级1059 Prime Factors :[C++题解]分解质因子

    文章目录 题目分析 题目链接 题目分析 暴力求质因数 下面i就是质因子,s是质因子i的阶数. 暴力的时间复杂度O(n),会超时 void divide(int n){for(int i=2;i< ...

  5. 1072: 分解质因子

    时间限制: 1 Sec  内存限制: 128 MB 题目描述 将一个正整数分解质因数,例如,输入90,输出2 3 3 5. 输入 输入一个正整数n(2<=n<=2000). 输出 从小到大 ...

  6. 求一个数的最小素因子外加快速分解质因子

    这种方法使用与数据小于1e7, 这种适用于分解1到n所有数的质因子,而且打印出来是从小到大排好序的 首先找到每个数的最小质因子,不停的除以最小素因子,只到x==1 如果是分解单个还是根号n复杂度的更好 ...

  7. 关于求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]互质, ...

  8. UVA-10212 The Last Non-zero Digit. 分解质因子+容斥定理

    这个是参考了别人之后的代码,POJ上0MS过了.Orz......对于一个序列在提取了2,5之后,例如1,2,3,4,5,6,7,8,9,10,我们可以将其中的奇数和偶数分开来对待,对于偶数序列2,4 ...

  9. hdu 5428(分解质因子)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5428 题意:给你N个数,让你求出这N个数最小的因子之积,但要满足一个条件,那就是这个乘积必须包含三个因 ...

最新文章

  1. Java 虚拟机总结给面试的你(下)
  2. 线程互斥与同步 在c#中用mutex类实现线程的互斥_Golang 并发编程与同步原语
  3. iview日期控件 双向绑定日期
  4. 应用服务器web服务器_最受欢迎的应用服务器
  5. 盒子模型阴影设置,爱奇艺阴影配置
  6. node命令错误--nodemon : 无法将“nodemon”项识别
  7. 在Pandas DataFrame中重塑数据
  8. leetcode刷题——415. 字符串相加
  9. 计算机考研英语复试如何准备,如何准备考研英语复试听力?
  10. 自动化测试项目实战训练【广州8月】
  11. EXTJS源码分析与开发实例-原创2章下载
  12. 3串口多串口双串口以及2串口转WiFi多跳路由通讯实现一
  13. 5G承载网需求与技术实现
  14. 区块链开发者平台-u deserved it
  15. DolphinDB Database丨 最简最快的WorldQuant 101 Alpha因子实现
  16. WIN7 经典“致命错误 C0000034”解决方法
  17. 拉拉米抢单发单系统源码+二开ui带视频介绍+ 放量功能
  18. 疫情防控大数据分析模型搭建考虑因素
  19. 基于V4L2的视频驱动开发
  20. System Generator从入门到放弃(十)-ADC应用之音频信号采集与输出

热门文章

  1. Arcgis Javascript那些事儿(五)--arcgis server发布自定义比例尺地图
  2. jquery跨域调用webService
  3. 八款开源Android 游戏引擎介绍
  4. 计算机一级wps视频教程,计算机一级WPS
  5. python程序画漂亮图_用python画图代码:正弦图像、多轴图等案例
  6. mybatis添加方法可以传map吗_Mybatis创建方式二
  7. bootstrap的表单验证 vue_分享几个基于Vue的UI库和开源项目
  8. 网络映射连接不上_Mac连接不上无线网络的解决方法
  9. 面包屑php源码,自己写的面包屑导航
  10. java金字塔显示_java控制台输出数字金字塔示例分享