C. Trailing Loves (or L'oeufs?) (质因数分解)

Posted zhgyki

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C. Trailing Loves (or L'oeufs?) (质因数分解)相关的知识,希望对你有一定的参考价值。

C. Trailing Loves (or L‘oeufs?) 

题目传送门

题意:

  求n!在b进制下末尾有多少个0?


思路:

  类比与5!在10进制下末尾0的个数是看2和5的个数,那么

原题就是看b进行质因数分解后,每个因数个数的最小值

代码:

技术图片
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define N 1000005
ll pri[N];
ll cnt[N];
ll tot;
void getpri(ll x)
{
    memset(cnt,0,sizeof(cnt));
    memset(pri,0,sizeof(pri));
    for(ll i=2;i*i<=x;i++)
    {
        while(x%i==0)
        {
            pri[tot]=i;
            cnt[tot]++;
            x/=i;
        }
        if(cnt[tot]) tot++;
    }
    if(x>1) pri[tot]=x,cnt[tot++]++;
}
ll solve(ll x,ll p)
{
    ll res=0;
    while(x)
    {
        res+=x/p;
        x/=p;
    }
    return res;
}
int main()
{
    ll n,b;
    while(~scanf("%lld %lld",&n,&b)){
            tot=0;
        getpri(b);
        ll maxn=1e18;
        /*for(int i=0;i<tot;i++)
            cout<<pri[i]<<" "<<cnt[i]<<endl;*/
        for(ll i=0;i<tot;i++)
        {
            maxn=min(maxn,solve(n,pri[i])/cnt[i]);
        }
        printf("%lld
",maxn);
    }

    return 0;
}
View Code

 

以上是关于C. Trailing Loves (or L'oeufs?) (质因数分解)的主要内容,如果未能解决你的问题,请参考以下文章

CF 1114 C. Trailing Loves (or L'oeufs?)

Trailing Loves (or L'oeufs?) CodeForces - 1114C (数论)

CF-1114C-Trailing Loves (or L'oeufs?)

CF#538 C - Trailing Loves (or L'oeufs?) /// 分解质因数

Codeforces 1114CTrailing Loves (or L'oeufs?)

C. DZY Loves Fibonacci Numbers(线段树&fibonacci)