zoukankan      html  css  js  c++  java
  • UVA 11440

    求满足以下条件的 x 的个数
    ① x∈[1,n!]
    ② 设 pi 为质数且 pi|x,那么 pi>m,对于所有的 pi 均成立
    答案对 100000007 取模

    知识

    1.x的所有素因子大于m,则x与m!互素
    2.已知phi[(i-1)!],递推地求phi[i!]
      如果i是素数,phi[i!]=phi[(i-1)!]*(i-1)
      如果i不是素数,phi[i!]=phi[(i-1)!]*i

    3.phi[n!]=phi[m!]*(n!/m!)

    屠龙宝刀点击就送

    #include <cstdio>
    #define N 10000005
    #define MOD 100000007
    typedef long long LL;
    int n,m,Prime[N],cnt;
    bool notPrime[N];
    LL phifac[N];
    void rush(int n)
    {
        notPrime[1]=1;
        for(int i=2;i<=N;++i)
        {
            if(!notPrime[i]) Prime[++cnt]=i;
            for(int j=1;j<=cnt&&i*Prime[j]<=N;++j)
            {
                notPrime[i*Prime[j]]=1;
                if(i%Prime[j]==0) break;
            }
        }
    }
    int main()
    {
        rush(N);
        for(;scanf("%d%d",&n,&m)&&n&&m;)
        {
            phifac[1]=1;
            for(int i=2;i<=m;++i)
            if(notPrime[i]) phifac[i]=phifac[i-1]*i%MOD;
            else phifac[i]=phifac[i-1]*(i-1)%MOD;
            LL ans=phifac[m];
            for(int i=m+1;i<=n;++i) ans=ans*i%MOD;
            printf("%lld
    ",ans-1);
        }
        return 0;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    报表设计器的使用之一:入门
    统计图开发之二:点图元
    统计图开发之一:画法定义
    集算器之五:序表
    集算器之四:程序流程
    忏悔录
    请不要离我而去
    所想和所做 所梦和所成
    做出改变,不断改变。
    Linux 操作命令
  • 原文地址:https://www.cnblogs.com/ruojisun/p/7575554.html
Copyright © 2011-2022 走看看