给你两个数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)! 这些质因子的个数,得到的结果就是该组合数质因子的个数。

  

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #include <cstring>
 5 #include <cmath>
 6 #include <cstdlib>
 7 #include <cctype>
 8 #include <queue>
 9 #include <stack>
10 #include <map>
11 #include <vector>
12 #include <set>
13 #include <utility>
14 #define ll long long
15 #define inf 0x3f3f3f3f
16 using namespace std;
17
18 const int N=1e6+7;
19 bool book[N];
20 vector<int> prime;
21 void get_prime() //筛法预处理素数表
22 {
23     fill(book,book+N,false);
24     for(int i=2;i<N;i++)
25     {
26         if(!book[i])
27         {
28             prime.push_back(i);
29             for(int j=i+i;j<N;j+=i)
30                book[j]=true;
31         }
32     }
33 }
34 int main()
35 {
36     //freopen("input.txt","r",stdin);
37     get_prime();
38     int n,m;
39     while(scanf("%d%d",&n,&m)&&n&&m)
40     {
41         int res=0;
42         int len=prime.size();
43         for(int i=0;i<len&&prime[i]<=n;i++)
44         {       //分别计算n!、m!、(n-m)! 中含有质因子prime[i]的个数,再把n!的个数减去m!和(n-m)!的个数
45             int tn=n,tm=m,tt=n-m,cnt=0;
46             while(tn)
47             {
48                 cnt+=tn/prime[i];
49                 tn/=prime[i];
50             }
51             while(tm)
52             {
53                 cnt-=tm/prime[i];
54                 tm/=prime[i];
55             }
56             while(tt)
57             {
58                 cnt-=tt/prime[i];
59                 tt/=prime[i];
60             }
61             if(cnt) res++;
62         }
63         printf("%d\n",res);
64     }
65     return 0;
66 }

转载于:https://www.cnblogs.com/geek1116/p/5694855.html

FZU 1851 组合数相关推荐

  1. FZU - 2020 计算大组合数取模

    题意: 给出m,n. 计算C(n,m)%p,C(n,m)很大,p是素数  卢卡斯.不过不可以预处理,mod太大了 #include <iostream>//Lucas模板 #include ...

  2. FZU - 2301 H - Chosen by god (组合数学)

    原题地址:http://acm.fzu.edu.cn/problem.php?pid=2301 题意:有n次攻击回合,每个回合的攻击有一点伤害,但是可能攻击到敌方无限血的英雄,也可能攻击到敌方的一个血 ...

  3. FZU Problem 2238 Daxia Wzc's problem(Lucas定理求组合数)

    此文章可以使用目录功能哟↑(点击上方[+])  FZU Problem 2238 Daxia & Wzc's problem Accept: 0    Submit: 0 Time Limit ...

  4. Codeforces Beta Round #95 (Div. 2) 部分解题报告 (dp,组合数,)

    做这样的比赛既考快速编码的能力,还有快速思维的能力.本人很弱,跌了rating..加油!!!.. 第一题上来就把题意理解错了..粗心啊..直接模拟着做就行:1:如果字符串全是大写字母就进行大小写转换: ...

  5. [CQOI2014]数三角形 组合数 + 容斥 + gcd

    推导过程 : 组合数+容斥原理+gcd 正确做法是暴力的一种优化,ans=所有情况 - 平行坐标轴的三点共线 - 斜线三点共线 如果快速求斜线三点共线: 首先要知道一个结论,对于点(a,b) (x,y ...

  6. fzu 2150 Fire Game 【身手BFS】

    称号:fzu 2150 Fire Game :给出一个m*n的图,'#'表示草坪,' . '表示空地,然后能够选择在随意的两个草坪格子点火.火每 1 s会向周围四个格子扩散,问选择那两个点使得燃烧全部 ...

  7. 多重集表示合json数据_计数DP(划分数,多重集组合数)

    划分数:把n个无区别的物品划分成不超过m组. dp[i][j]=j的i划分的总数. dp[i[j]=dp[i][j-i]+dp[i-1][j] 即:将j个物品分成i份,有两种情况:每份划分都大于等于1 ...

  8. 【ACM】杭电OJ 4704 Sum (隔板原理+组合数求和公式+费马小定理+快速幂)

    http://acm.hdu.edu.cn/showproblem.php?pid=4704 1.隔板原理 1~N有N个元素,每个元素代表一个1.分成K个数,即在(N-1)个空挡里放置(K-1)块隔板 ...

  9. [Leetcode] Combinations 组合数

    Combinations Given two integers n and k, return all possible ombinations of k numbers out of 1 ... n ...

最新文章

  1. +1.1向量 链表 数组
  2. leetcode算法题--扁平化嵌套列表迭代器
  3. mysql 1280_技术分享 | MySQL 一次奇怪的故障分析
  4. messagedigest 图片加密_MessageDigest 加密和解密2
  5. C#调试WebService
  6. macbook装双系统多分区其实很简单,你只要把macbook当作一台普通pc就可以了!
  7. win7计算机文件夹打开慢,win7开机很慢怎么办 win7电脑开机慢的优化教程
  8. 地表径流分布数据/水文站点分布/降雨量分布/辐射分布数据
  9. NSIS 安装VS2008运行时
  10. 安装markdownPad+awesomium
  11. Flash Cs4 安装之后打不开
  12. 分享一份适合写进简历的软件测试项目
  13. vs2017发布网站到IIS
  14. java 获取本年月份、本月/本周所有日期
  15. 第十七周助教工作总结——NWNU李泓毅
  16. doc创建php文件,PHP读取创建txt,doc,xls,pdf类型文件
  17. 笔记本显卡和台式显卡区别介绍
  18. 学校教务系统服务器配置,校园小程序: 基于强智教务系统的校园服务类小程序--多校版本(默认 山科)使用云开发...
  19. ubuntu 安装java运行环境,Ubuntu 安装java环境搭建
  20. Day5.牛客网剑指offer 67题之43-54题(java代码)

热门文章

  1. SAP MTS/ATO/MTO/ETO专题之六:Q+M模式前后台操作,策略自定义
  2. 根据时间显示不同的问候语的JavaScript代码
  3. 网络原理——IP地址与mac地址
  4. MySQL-第十三章-系统优化
  5. Unity3d-learning 牧师与恶魔
  6. 期刊论文是否需要查重?
  7. 布置儿童房有什么样的风水讲究
  8. 比智商和情商更重要的品质——Grit
  9. 这部电影是否能够让《 奎迪》系列在观众心中不留下任何遗憾?
  10. C++、VC++、MFC网页自动注册、登陆、发帖、留言,QQ注册、QQ申请器源码、注册邮箱源码、自动发帖源码