zoukankan      html  css  js  c++  java
  • 完全平方数

    源代码:
    
    #include<cstdio>
    #define LL long long
    #define INF 100000007LL
    LL n,Num(0),Ans=1,Sum[350000]={0},Prime[350000];
    bool Flag[5000001]={0};
    LL Count(LL S,LL X) //快速幂。
    {
        LL Number=1;
        while (S)
        {
            if (S&1)
              Number=(Number*X)%INF;
            X=(X*X)%INF;
            S>>=1;
        }
        return Number;
    }
    void Euler() //欧拉筛法。
    {
        for (LL a=2;a<=n;a++)
        {
            if (!Flag[a])
              Prime[Num++]=a;
            for (LL b=0;b<Num&&a*Prime[b]<=n;b++)
            {
                Flag[a*Prime[b]]=true;
                if (!(a%Prime[b]))
                  break;
            }
        }
    }
    int main()
    {
        scanf("%lld",&n);
        Euler();
        for (LL a=0;a<Num;a++) //那个方法。
        {
            LL t=n;
            while (t)
            {
                Sum[a]+=t/Prime[a];
                t/=Prime[a];
            }
        }
        for (LL a=0;a<Num;a++)
          if (Sum[a]&1) //完全可以用素数独苗来填补空缺。
            Ans=(Ans*Count(Sum[a]-1,Prime[a]))%INF;
          else
            Ans=(Ans*Count(Sum[a],Prime[a]))%INF;
        printf("%lld",Ans);
        return 0;
    }
    
    /*
        从1~N中选若干个数相乘,使其形成解,可以转化为:从1~N中选若干个数,作为N!的约数。
        阶乘分解质因数后,会发现规律。
    */
  • 相关阅读:
    A
    MongoDB小结17
    MongoDB小结16
    金蝶无法生成下推发票
    MongoDB小结15
    MongoDB小结14
    MongoDB小结13
    MongoDB小结12
    MongoDB小结11
    MongoDB小结10
  • 原文地址:https://www.cnblogs.com/Ackermann/p/6012583.html
Copyright © 2011-2022 走看看