zoukankan      html  css  js  c++  java
  • fzu-2164 Jason's problem(数论)

    题意:就是把n的阶乘转化b进制后缀为0的个数为k,求b的个数(n/k < 500)

    题解:把n的阶乘分解素因子,枚举前500个素因子即可,找出素因子的个数大于k的

    然后就是求符合条件的素因子的组合有多少种;

    #include<stdio.h>
    #include<math.h>
    #include<iostream>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    typedef __int64 LL;
    const LL mod = 1000000007;
    LL prime[1000];
    LL vis[10005];
    LL a[1000];
    LL b[1000];
    LL num;
    void init()
    {
        num = 0;
        memset(vis,0,sizeof(vis));
        for(LL i = 2; i <= 6000; i++)
        {
            if(!vis[i])
            {
                prime[num++] = i;
                for(LL j = i+i; j <= 6000; j+=i)
                {
                    vis[j] = 1;
                }
            }
        }
        
    }
    int main()
    {
        init();
        int T;
        LL n,k,tmp;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%I64d%I64d",&n,&k);
            LL p = 0,i;
            LL ans = 1,ans1 = 1,Sum = 0; ;
            for(i = 0; i < num; i ++)
            {
                tmp = n;
                LL sum = 0;
                while(tmp)
                {
                    tmp/=prime[i];
                    sum += tmp;
                }
                if(sum >= k)
                {
                    LL ss = sum/k+1;
                    ans = (ans * ss)%mod;
                    a[i] = ss - 1;
                    b[i] = sum;
                }
                else break;
            }
            for(LL j = 0; j < i; j++)
            {
                LL count = 0;
                for(LL r = 1; r <= a[j]; r++)
                    if(b[j]/r!=k) count++;
                ans1 = (ans1 * (count+1))%mod;
            }
            printf("%I64d
    ",((ans-ans1)%mod+mod)%mod);
        }
    }
    View Code
  • 相关阅读:
    C#生成PDF总结
    Oracle删除当前用户下所有的表的方法
    C#操作oracle 到ExecuteNonQuery卡死不执行
    C#中事件的使用
    初探three.js光源
    d3.js 地铁轨道交通项目实战
    初探three.js
    d3.js 绘制北京市地铁线路状况图(部分)
    d3.js 共享交换平台demo
    d3.js 实现烟花鲜果
  • 原文地址:https://www.cnblogs.com/zsj-93/p/3690868.html
Copyright © 2011-2022 走看看