给你两个数n和m,然后让你求组合数C(n,m)中的质因子的个数。

  这里用到的一个定理:判断阶乘n!中的质因子 i 的个数的方法---f(n!)=n/i+n/i^2+n/i^3+.....n/i^m (i为一个质因子,m是使n/i^m=0的最小值);

  又已知C(n,m)=n!/ ( m!·(n-m)! ) ; 所以需要n!中所有的质因子的个数,然后再减去m! 和 (n-m)! 这些质因子的个数,得到的结果就是该组合数质因子的个数。

  

 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <queue>
#include <stack>
#include <map>
#include <vector>
#include <set>
#include <utility>
#define ll long long
#define inf 0x3f3f3f3f
using namespace std; const int N=1e6+;
bool book[N];
vector<int> prime;
void get_prime() //筛法预处理素数表
{
fill(book,book+N,false);
for(int i=;i<N;i++)
{
if(!book[i])
{
prime.push_back(i);
for(int j=i+i;j<N;j+=i)
book[j]=true;
}
}
}
int main()
{
//freopen("input.txt","r",stdin);
get_prime();
int n,m;
while(scanf("%d%d",&n,&m)&&n&&m)
{
int res=;
int len=prime.size();
for(int i=;i<len&&prime[i]<=n;i++)
{ //分别计算n!、m!、(n-m)! 中含有质因子prime[i]的个数,再把n!的个数减去m!和(n-m)!的个数
int tn=n,tm=m,tt=n-m,cnt=;
while(tn)
{
cnt+=tn/prime[i];
tn/=prime[i];
}
while(tm)
{
cnt-=tm/prime[i];
tm/=prime[i];
}
while(tt)
{
cnt-=tt/prime[i];
tt/=prime[i];
}
if(cnt) res++;
}
printf("%d\n",res);
}
return ;
}

最新文章

  1. 百度云推送-服务端 C# SDK
  2. less,sass,stylus配置和应用教程及三者比较
  3. jstl c:choose&gt;、&lt;c:when&gt;和&lt;c:otherwise&gt;标签
  4. poj1330
  5. PLSQL 连接Oracle11g (64位)
  6. Yii rabc角色权限管理文章推荐
  7. VS2013 快捷键 VS RESHARPER 设置
  8. jenkins集群加入Windows 2012 server作为slave
  9. 织梦系统与discuz论坛整合方法
  10. poj2828 Buy ticket
  11. jfinal 源码学习
  12. ES6小点心之通用弹窗
  13. Linux学习之XShell与虚拟机的连接
  14. Win32项目生成的程序exe图标显示异常的问题
  15. 漫谈hashcode
  16. IdentityServer4 中文文档 -14- (快速入门)使用 ASP.NET Core Identity
  17. Get started with Docker for Windows
  18. Tarjan 强连通分量 及 双联通分量(求割点,割边)
  19. vue中输入框聚焦,自动跳转下一个输入框
  20. jformdesigner 开发

热门文章

  1. JQuery+Bootstrap总结
  2. 使用ZeppelinHub来存储和展示ZeppelinNoteBook
  3. 【Codeforces】Codeforces Round #373 (Div. 2) -C
  4. Eclipse 每次ctrl-c ctrl-v 就变慢?
  5. (转) OpenLayers3基础教程——OL3 介绍control
  6. servlet_获取初始化参数
  7. HDU_1269_tarjan求强连通分量
  8. NSURLProtectionSpace 证书认证的上下文
  9. tomcat 热加载设置
  10. 【转载】java中的反射