题目描述

SOL君很喜欢阶乘。而SOL菌很喜欢研究进制。

这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘。

SOL菌表示不服,立刻就要算这个数在k进制表示下末尾0的个数。

但是SOL菌太菜了于是请你帮忙。

说明

对于20%的数据,n <= 1000000, k = 10

对于另外20%的数据,n <= 20, k <= 36

对于100%的数据,n <= 10^12,k <= 10^12

  这道题的思路还是挺显然的,0的个数即n!和k共同质因数的数量之比最小的那个。K的质因数很容易在O(√k)的时间内统计出来,问题是N!中与K相同的质因子的个数怎么统计

  我们令G(T,K)表示T中质因子K的个数,显然有:

    G(N!,K)=G(1*2*....*N,K)=G(1*K*2*K*3*K*....*[N/K]*K,K)

  我们对这个式子进一步变形:

    G(1*K*2*K*3*K*....*[N/K]*K,K)=G(K^[N/K]*1*2*....*[N/K],K)=[N/K]+G([N/K],K)

  接下来的问题接下来显然可以递归处理,易证G函数的复杂度是O(log N)

  于是问题就那么1A了。(题目挺简单,但我特么调了半个钟精度。。。垃圾devc++(╯°Д°)╯︵ ┻━┻)

  

#include<bits/stdc++.h>
using namespace std;
#define MAXN 1000000+10
typedef long long LL;
const LL INF=1e13;
LL n,k,ans=INF,cn[MAXN],ck[MAXN],prime[MAXN],fac[MAXN];
bool isprime[MAXN];
int cnt=,tot=,had[MAXN];
void form(){
memset(isprime,true,sizeof(isprime));
isprime[]=false;
for(int i=;i<=MAXN-;i++){
if(isprime[i])prime[++cnt]=i;
for(int j=;j<=cnt&&i*prime[j]<=MAXN-;j++){
isprime[i*prime[j]]=false;
if(i%prime[j]==)break;
}
}
}
void dealk(){
for(LL i=;i*i<=k;i++)
if(isprime[i]&&k%i==)fac[++tot]=i;
LL p=k;
for(int i=;i<=tot;i++){
while(p%fac[i]==){
had[i]++;
p/=fac[i];
}
}
if(p!=)fac[++tot]=p,had[tot]++;
}
LL calc(LL p,LL t){
if(p==)return ;
LL f=(LL)p/t;
return f+calc(p/t,t);
}
int main(){
form();
scanf("%lld%lld",&n,&k);
dealk();
for(int i=;i<=tot;i++){
LL p=calc(n,fac[i]);
p/=had[i];
ans=min(ans,p);
}
printf("%lld\n",ans);
return ;
}

  吐槽一波:洛谷的题目相比雅礼集训的简直小清新2333333

洛谷 P3927 Factorial的更多相关文章

  1. 洛谷 P3927 SAC E#1 - 一道中档题 Factorial【数论//】

    题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. SOL菌表示不服,立刻就要算这个数在k进制表示下末尾0的个数. 但是SOL菌太菜了于是请 ...

  2. 洛谷-P3927 SAC E#1 - 一道中档题 Factorial

    原址 题目背景 数据已修改 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. ...

  3. [洛谷P3927]SAC E#1 - 一道中档题 Factorial

    题目大意:求$n!$在$k(k>1)$进制下末尾0的个数. 解题思路:一个数在十进制转k进制时,我们用短除法来做.容易发现,如果连续整除p个k,则末尾有p个0. 于是问题转化为$n!$能连续整除 ...

  4. 洛谷【P5004 专心OI - 跳房子】 题解

    题目链接 https://www.luogu.org/problem/P5004 洛谷 P5004 专心OI - 跳房子 Imakf有一天参加了PINO 2017 PJ组,他突然看见最后一道题 他十分 ...

  5. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  6. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  7. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  8. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  9. 洛谷P1710 地铁涨价

    P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交  讨论  题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...

随机推荐

  1. CodeForces - 846F Random Query(期望)

    You are given an array a consisting of n positive integers. You pick two integer numbers l and r fro ...

  2. 删除链表中倒数第n个节点

    给定一个链表,删除链表中倒数第n个节点,返回链表的头节点. 样例 给出链表1->2->3->4->5->null和 n = 2. 删除倒数第二个节点之后,这个链表将变成1 ...

  3. hdu 2089 不要62(入门数位dp)

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  4. CQRS微服务架构模式

    ​什么是微服务? 这是维基百科里面的定义:“微服务是面向服务架构(SOA)架构风格的一种变体,它将应用程序构建为一系列松散耦合的服务.在微服务体系结构中,服务应该是细粒度的,协议应该是轻量级的.将应用 ...

  5. CDN 机制

    CDN的全称Content Delivery Network,(缩写:CDN)即内容分发网络. CDN是一个经策略性部署的整体系统,从技术上全面解决由于网络带宽小.用户访问量大.网点分布不均而产生的用 ...

  6. Chrome DevTools 开发者工具 技巧 调试

    https://developers.google.com/chrome-developer-tools/docs/tips-and-tricks   1.console面板多行输入 Shift +  ...

  7. linux系统下解决getch()输入数值不回显示

    在linux系统下开发C 程序却会遇到系统不支持conio.h头文件,无法使用getch()不回显函数.下面就演示如何构建函数实现数值输入不回显. #include <stdio.h> # ...

  8. 阿里云ecs遭到频繁的ddos攻击始末

    苦逼熬夜近俩月的时间搞出来个小东东,还指望它能给自己捞点~  结果刚上线没多久就遭到竞争对手疯狂的ddos攻击. 可怜的阿里云默认只能抗住5G的攻击,超出的直接黑洞,也是很无奈,然而能免费抗5G这在国 ...

  9. H5定位

    百度地图javaScript API 一.在html文件中引入 <script src="http://api.map.baidu.com/api?ak=Uk9tDddYkrQImXw ...

  10. ASP.NET Core 与 Vue.js 服务端渲染

    http://mgyongyosi.com/2016/Vuejs-server-side-rendering-with-aspnet-core/ 原作者:Mihály Gyöngyösi 译者:oop ...