poj 3421 --X-factor Chains(数学、组合)
来源:互联网 发布:spark java编程 编辑:程序博客网 时间:2024/06/05 03:58
http://poj.org/problem?id=3421
X-factor Chains
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4495 Accepted: 1379
Description
Given a positive integer X, an X-factor chain of length m is a sequence of integers,
1 = X0, X1, X2, …, Xm = X
satisfying
Xi < Xi+1 and Xi | Xi+1 where a | b means a perfectly divides into b.
Now we are interested in the maximum length of X-factor chains and the number of chains of such length.
Input
The input consists of several test cases. Each contains a positive integer X (X ≤ 220).
Output
For each test case, output the maximum length and the number of such X-factors chains.
Sample Input
23410100
Sample Output
1 11 12 12 24 6
Source
POJ Monthly--2007.10.06, ailyanlu@zsu
解法:
s=p1^a1*p2^a2*p3^a3.....pn^an, 其中p1..pn为素数因为素数不可再分,所以最大值为 (a1+a2+...+an)的最大值。所以就看s能分解成几个素数的k次方。所求得的数利用排列组合算下组合数即为最大长度的数量组合数为:(a1+a2...an)!/(a1!*a2!...*an!)
/**************************************************核心原理:*s=p1^a1*p2^a2*p3^a3.....pn^an, 其中p1..pn为素数**************************************************/#include<cstdio>#include<cstring>#include <cmath>const int M=(1<<20)+5;bool is[M];int prim[M>>1];int a[100],k;int getprm(int n){int i, j, k = 0;int s, e = (int)(sqrt(0.0 + n) + 1);memset(is, 1, sizeof(is));prim[k++] = 2; is[0] = is[1] = 0;for (i = 4; i < n; i += 2) is[i] = 0;for (i = 3; i < e; i += 2) if (is[i]) {prim[k++] = i;for (s = i * 2, j = i * i; j < n; j += s)is[j] = 0;// 因为j是奇数,所以+奇数i后是偶数,不必处理!}for ( ; i < n; i += 2) if (is[i]) prim[k++] = i;return k; // 返回素数的个数}int main(){int i,t,k,sum1,j,n;__int64 sum2;t=getprm(M);while(scanf("%d",&n)==1){if(is[n]){printf("1 1\n");continue;}k=0;for(i=0;i<t;i++){if (n==1) break;if (n%prim[i]==0){a[k]=0;while(n%prim[i]==0) n/=prim[i],a[k]++;//p[k]=count(ak)k++;}}sum1=0;for(i=0;i<k;i++)//sum1 = a1+a2..+ansum1+=a[i];sum2=1;for(i=1;i<=sum1;i++) sum2*=i;for(i=0;i<k;i++)//sum2 = (a1+a2...an)!/(a1!*a2!...*an!) for(j=2;j<=a[i];j++)sum2/=j;printf("%d %I64d\n",sum1,sum2);}return 0;}
- poj 3421 --X-factor Chains(数学、组合)
- poj 3421 X-factor Chains(分解质因数+组合数学)
- POJ 3421X-factor Chains【分解质因子+组合数学】
- POJ 3421 - X-factor Chains(数学)
- X-factor Chains (poj 3421 数学排列组合)
- POJ-3421-X-factor Chains
- poj 3421 X-factor Chains
- Poj 3421-X-factor Chains
- POJ 3421 X-factor-Chains
- poj 3421 X-factor Chains
- POJ3421 X-factor Chains【分解质因子+组合数学】
- POJ 3421 X-factor Chains 排列组合
- POJ3421 X-factor Chains 数学
- POJ 3421 X-factor Chains (整数分解+组合数)
- POJ 3421 X-factor Chains (约数枚举)
- POJ 3421 X-factor Chains(数论)(筛法)()
- POJ 3421 X-factor Chains 已被翻译
- poj 3421 X-factor Chains(数因子分解)
- 数据库角色权限
- 四个素数之和问题
- 获取linux的CPU,内存,磁盘
- 骰子游戏问题
- qq能正常使用 网页打不开的解决办法
- poj 3421 --X-factor Chains(数学、组合)
- 百度面试题之赛马
- Automated Judge Script
- 小介 magento 常用的xml的文件的作用
- 工作日志 7.9
- iframe和href中target属性的应用
- 让你的 Google Toolbar 兼容 Firefox 5.0
- Where's Waldorf?
- MS-SQL SERVER从字符串中搜索符合指定范围的数值--【叶子】