组合数的不同质因子
来源:互联网 发布:姓名签名设计软件 编辑:程序博客网 时间:2024/06/05 00:41
求组合数C(n,m)有多少个不同的质因子。
C(n,m)=n!/( m!*(n-m)! )
P(N!)=N/i+N/i^2+N/i^3+…..N/i^m是一个可以求N!中有多少个质因子i,例如7!中有4个质因子2,那么P(n!)=4;
既然知道了这个公式,枚举每个质数,分别求n!,m!,(n-m)!的质因子个数是否符合
P(n!)=p(m!)+p( (n-m)! )
#include <bits/stdc++.h>#define x first#define y secondusing namespace std;typedef long long LL;const int N=1e6+7;vector <int> v;bool p[N];int main(){#ifdef LOCAL freopen("in.txt","r",stdin);#endif // LOCAL memset(p,0,sizeof(p)); for(int i=2;i<N;i++) { if(!p[i]) { v.push_back(i); for(int j=i*2;j<N;j+=i) p[j]=1; } } int n,m; while(~scanf("%d%d",&n,&m)&&n+m) { int l=v.size(),ans=0; cout<<l<<endl; for(int i=0;i<l;i++) { if(v[i]>n) break; int x=n,y=m,z=n-m,num=0; while(x) num+=x/v[i],x/=v[i]; while(y) num-=y/v[i],y/=v[i]; while(z) num-=z/v[i],z/=v[i]; if(num) ans++; } printf("%d\n",ans); } return 0;}
0 0
- 组合数的不同质因子
- 输入一个数,1~2^24, 输出它的最大质因子和不同质因子的个数。
- POJ_2992_Divisors(组合数的因子数)
- poj 2992 Divisors(求组合数的因子个数)
- POJ 2992 : Divisors - 求组合数的因子个数
- POJ 2992-Divisors(求组合数质因子的个数)
- 整数的因子数
- 分解质因子和快速幂在求组合数的模中的应用
- 无平方因子的数
- 【2019】数的质因子
- 求数的质因子(可能这个数很大但是不多,或者这个数很多但是不大)
- POJ 2992 Divisors 求组合数因子个数
- POJ 题目2992 Divisors(组合数因子个数)
- POJ 2992 Divisors(求组合数因子个数)
- 定和因子组合的最小值
- 【因子算法】——求一个数的因子、质因子、求两个数的公因子
- 求一个数的因子的个数
- 组合数的输出
- PHP中的数组
- linux安装tomcat
- 尺取法学习笔记
- Codeforces 468A 24 Game
- MySQL C API
- 组合数的不同质因子
- static,const关键字作用
- sorted 排序算法(转载)
- 常用算法思想之:递推思想
- HDOJ 2041 超级楼梯
- 关于float与清除浮动
- git on server(ssh)深入剖析,github提供服务原理
- java外挂
- Pku oj 1905 Expanding Rods(简单几何加二分)