zoukankan      html  css  js  c++  java
  • Vijos——P1137 组合数

    https://vijos.org/p/1137

    描述

    组合公式 C=N!/(M!*(N-M)!). 问题是求 C 中不同的质因子的个数
    例如 N=7, M=4. C=7!/(3!*4!)=5040/(6*24)=35=5*7. 则不同的质因子的个数为2 (分别是5,7)。

    格式

    输入格式

    输入N,M

    输出格式

    输出一个整数

    样例1

    样例输入1

    7 4
    

    样例输出1

    2
    

    限制

    质因数分解。。

     1 #include <cstdio>
     2 
     3 inline void read(int &x)
     4 {
     5     x=0; register char ch=getchar();
     6     for(; ch>'9'||ch<'0'; ) ch=getchar();
     7     for(; ch>='0'&&ch<='9'; ch=getchar()) x=x*10+ch-'0';
     8 }
     9 
    10 const int N(100521);
    11 int n,m,pri[N],cnt;
    12 bool no_pri[N];
    13 
    14 inline void Get_Prime(int lim)
    15 {
    16     no_pri[1]=1;
    17     for(int i=2; i<=lim; ++i)
    18     {
    19         if(!no_pri[i]) pri[++cnt]=i;
    20         for(int j=1; j<=cnt; ++j)
    21         {
    22             if(pri[j]*i>lim) break;
    23             no_pri[pri[j]*i]=true;
    24             if(i%pri[j]==0) break;
    25         }
    26     }
    27 }
    28 
    29 int _if[N],ans;
    30 inline void Update(int x,int op)
    31 {
    32     for(int i=1; i<=cnt; ++i)
    33     {
    34         if(x%pri[i]) continue;
    35         x/=pri[i]; _if[i]+=op;
    36         for(; x%pri[i]==0; )
    37             _if[i]+=op,x/=pri[i];
    38     }
    39 }
    40 
    41 int Presist()
    42 {
    43     read(n),read(m);
    44     Get_Prime(n+1);
    45     for(int i=m+1; i<=n; ++i) Update(i, 1);
    46     for(int i=2; i<=n-m; ++i) Update(i,-1);
    47     for(int i=1; i<=cnt; ++i) ans+=(_if[i]>0);
    48     printf("%d
    ",ans);
    49     return 0;
    50 }
    51 
    52 int Aptal=Presist();
    53 int main(int argc,char**argv){;}
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    Python-内置数据结构listdictset
    Python-内置结构listsetdicttuple
    Python-内置数据结构
    Python-函数作用域和集合列表字典元祖
    Python-函数参数和文档
    Python-while循环+函数
    Python-分支循环
    Python基础
    五、Jmeter-数据库数据进行参数化
    mysql索引:四种类型,两种方法
  • 原文地址:https://www.cnblogs.com/Shy-key/p/7860250.html
Copyright © 2011-2022 走看看