链接:http://codeforces.com/problemset/problem/1114/C

题意:给定数字$n$和$b$,问$n!$在$b$进制下有多少后导零。

寒假好像写过这道题当时好像完全不会,之后也没记住写法,今天想做这场的F题看到这道顺便就给切了。

思路:能有后导零就说明$n!$能整除$b$,然后就是求$n!$的阶乘里面$b$的幂次有多少。先分解一下$b$求一下素因子及次数。在对$n!$求一下有素因子的幂次是多少,取比值最小的就是答案。

注意求$n!$里面素因子的幂次时可能会溢出,乘法变成除法即可。

#include <bits/stdc++.h>
#define ll long long
using namespace std; const int N = 1e5 + ;
pair<ll, ll> p[N];
int cnt; ll C(ll x, ll p) {
ll res = ;
ll temp = p;
while (x >= temp) {
res += x / temp;
if (x / p < temp) break;
temp *= p;
}
return res;
} int main() {
ll n, b;
scanf("%lld%lld", &n, &b);
for (ll i = ; i * i <= b; i++) {
if (b % i == ) {
p[++cnt].first = i;
p[cnt].second = ;
while (b % i == ) { p[cnt].second++; b /= i; }
}
}
if (b != ) { p[++cnt].first = b; p[cnt].second = ; }
ll ans = 1e18;
for (int i = ; i <= cnt; i++) {
ll res = C(n, p[i].first);
ans = min(ans, res / p[i].second);
}
cout << ans << '\n';
return ;
}

最新文章

  1. Sass之坑Compass编译报错
  2. jquery easyui使用(一)&#183;&#183;&#183;&#183;&#183;&#183;可折叠面板的布局,手风琴
  3. Microsoft Dynamics CRM 分销行业解决方案
  4. .NET转JAVA之拼音组件
  5. emacs入门
  6. 有序列表和无序列表、流、格式布局:position
  7. VS2013以管理员身份使用
  8. SQL面试题收录
  9. Java字符串操作及与C#字符串操作的不同
  10. SqlServer 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
  11. DBLinq (MySQL exactly) Linq To MySql(转)
  12. 可变码率(英语:Variable bitrate,简称VBR)介绍
  13. MT【18】幂平均不等式的证明
  14. 20155231 2016-2017-2 《Java程序设计》第6周学习总结
  15. Real-time qPCR So Easy?
  16. MongoDB学习笔记(2)
  17. 這是我既C語言作業寫博客後寫的第一篇博客
  18. django导入/导出原始数据
  19. 在vsagent上运行.dll录制文件。
  20. Windows编程中回调函数的使用心得(MFC篇)

热门文章

  1. 洛谷P2048 [NOI2010]超级钢琴 题解
  2. Haystack搜索框架
  3. LeetCode 5215. 黄金矿工(Java)DFS
  4. POJ 1321 棋盘问题(C)回溯
  5. Mongodb 的事务在python中的操作
  6. Python中的sync和wait函数的使用
  7. CF241E Flights 差分约束
  8. InheritedWidget and screen
  9. Spring通过注解@Autowired/@Resource获取bean实例时为什么可以直接获取接口而不是注入的类
  10. python 工厂方法