(Relax 数论1.16)POJ 2992 Divisors(C[N][K]中含素数的个数)
来源:互联网 发布:淘宝如何申请子账号 编辑:程序博客网 时间:2024/04/29 03:36
求组合数C(n, k)的约数的个数 (0 ≤ k ≤ n ≤ 431)。
题目链接:http://poj.org/problem?id=2992
——>>3个公式:
1、n!中含素数p的个数为n/p + n/p^2 + n/p^3 + ...(到0停)程序中通过cal函数实现
2、C(n, k) = n! / (n-k)! / k!
3、n = p1^a1*p2^a2*...*pk^ak约数的个数为(a1+1)(a2+1)...(ak+1)
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>/** * 2 2 3 172 2 3 292 2 5 37 */using namespace std;int su[505];//这里不要开太大,否则会TLEbool u[505];int num = 0;int n;void prepare(){int i,j;memset(u,true,sizeof(u));for(i = 2 ; i <= 500 ;++i){if(u[i]){su[++num] = i;}for(j = 1 ; j <= 500 ; ++j ){if(i*su[j] >500){break;}u[i*su[j]] = false;if(i % su[j] ==0){break;}}}}int cal(int n,int pri){//n!含素数pri的个数return (n<pri)?0:(n/pri+cal(n/pri,pri));}int main(){prepare();int n,k;while(scanf("%d%d",&n,&k)!=EOF){long long sum = 1;int i;for(i = 1 ; i <= num ; ++i){//n! / (n-k)! / k!含素数的个数为:cal(n,su[i]) - cal(n-k,su[i]) - cal(k,su[i]) + 1sum *= (cal(n,su[i]) - cal(n-k,su[i]) - cal(k,su[i]) + 1);}printf("%lld\n",sum);}return 0;}
- (Relax 数论1.16)POJ 2992 Divisors(C[N][K]中含素数的个数)
- (Relax 数论1.11)POJ 1595 Prime Cuts(欧拉筛法: 输出1~n区间中中间的2C个素数)
- (Relax 数论1.7)POJ 2407 Relatives(使用欧拉函数来求[1,n]中与n互质的整数的个数)
- poj 2992 Divisors n!的因子个数的计算
- (Relax 1.15)POJ 2773 Happy 2006(欧拉函数的应用:求与n互质的第k个数)
- poj 2992 Divisors 简单的数论问题
- (Relax 数论1.8)POJ 1284 Primitive Roots(欧拉函数的应用: 以n为模的本原根的个数phi(n-1))
- poj 2992 Divisors 简单数论
- wikioi 1008 在n个数中求K个数的和是否为素数
- (Relax 数论1.30)POJ 3252 Round Numbers(计算a-b中round number的个数(0的出现的次数比1出现的次数多))
- poj 2992 Divisors (素数表)
- C(n,k)中素数P的问题
- n 个数中最小的 k 个数
- POJ 2992 Divisors (因子个数)
- POJ 2992 Divisors (因子个数)
- c 取N中最大的K个数
- (Relax 数论1.14)POJ 26889 Prime Distance(区间筛素数:求一个区间L\U中距离最近的两个素数和距离最远的两个素数)
- (Relax 后缀数组1.2)POJ 3261 Milk Patterns(求一个长度为n的整数序列中,至少出现k次的子序列的最长的长度)
- sysfs接口函数的建立_DEVICE_ATTR
- 辅助调试
- J2EE WEB程序页面出错信息的处理方法
- MySQL无法创建表
- svm
- (Relax 数论1.16)POJ 2992 Divisors(C[N][K]中含素数的个数)
- 当汇错款时该怎么办?
- DevExpress12.2.6 安装顺序记录
- 最大价值
- 如何写审稿意见
- 5.查找最小的k个元素
- 第13周项目5-1900~2020的闰年
- Netcat使用手册
- 背包九讲