zoukankan      html  css  js  c++  java
  • Wannafly挑战赛25 A 因子(快速求n!中有多少个m的乘积)

    题意:给你一个n,和p让你求n中含有x个p,打印x

    思路:(秦皇岛真的打自闭了啊,后来听铁哥们说了I感觉能暴力,但想的不是很清楚)还是说正题啵,这个题有点意思骂我们先思考一个n的阶乘对于一个质数p的做法,我觉得纸片博客讲的还是挺清楚的,其实只用你自己稍微推一下就行了(传送门),然后这个题我们发现他并没有说是质数,那我们就手动质因数分解,然后就最小值就行了

    代码:

    #include <bits/stdc++.h>
    using namespace std;
     
    typedef long long LL;
     
    map<LL,LL>mp;
    LL solve(LL n,LL p)
    {
        LL ans=0;
        while(n)
        {
            n=n/p;
            ans+=n;
        }
        return ans;
    }
    int main()
    {
        LL n,p;
        scanf("%lld%lld",&n,&p);
        LL as=p;
        LL j=2;
        while(as!=1){
            while(as%j==0){
                as/=j;
               mp[j]++;
            }
            j++;
        }
        LL ans=0x3f3f3f3f3f3f3f3fLL;
        for(auto i:mp){
    //        printf("%d %d
    ",i.first,i.second);
            ans=min(ans,solve(n,i.first)/(i.second));
        }
        printf("%lld
    ",ans);
        return 0;
    }
  • 相关阅读:
    大数据
    入门
    bootstrap
    django 实现
    django
    爬虫
    汇编指令
    JavaScript
    那些年踩过的坑
    实现网页代码
  • 原文地址:https://www.cnblogs.com/lalalatianlalu/p/9722465.html
Copyright © 2011-2022 走看看