首页 > 其他 > 详细

cf1114 C. Trailing Loves (or L'oeufs?)

时间:2019-02-11 12:11:49      阅读:179      评论:0      收藏:0      [点我收藏+]

注意题目中一旦有大于1e9的数字,所有变量全用Longlong替代,包括i,j

或者一开始直接define int longlong ,然后之后主函数用int32_t,输入输出用int32_t替代

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll INF=1e18+7;
ll p[1000010];
ll c[1000010];
ll res=INF;
int main()
{
    ll n,x;
    scanf("%lld%lld",&n,&x);
    if(n==1)
    {
        printf("0\n");
        return 0;
    }
    int m=0;
    for(int i=2;1LL*i*i<=x;i++)//一旦出现大于10^9的数字,所有变量(包括i,j都要用long long),惨痛的教训 
    {
        printf("%d\n",i);
        if(x%i==0){
            p[++m]=i,c[m]=0;
            while(x%i==0) x/=i,c[m]++;
        }
    }
    if(x>1) p[++m]=x,c[m]=1;
    int tot=0;
    //printf("***\n");
    for(int i=1;i<=m;i++)
    {
        ll tmpn=n;
        ll num=0;
        //printf("****\n");
        while(tmpn)
        {
            //printf("%d\n",++tot);
            num+=tmpn/p[i];
            tmpn/=p[i];
        }
        num/=c[i];
        res=min(num,res);
    }
    printf("%lld\n",res);
}

 

cf1114 C. Trailing Loves (or L'oeufs?)

原文:https://www.cnblogs.com/lishengkangshidatiancai/p/10361154.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!