Codeforces 1114C(数论)
题面
分析
我们先考虑n!在10进制下有多少个0
由于10=2*5,
我们考虑n!的分解式中5的指数,答案显然等于\(\frac{n}{5}+\frac{n}{5^2}+\frac{n}{5^3}+\dots\frac{n}{5^k}(\frac{n}{5^k}\geq 1,\frac{n}{5^{k+1}}<1)\)
可以用一个递归函数来计算:
ll f(ll x,ll y){
if(x<y) return 0;
else return x/y+f(x/y,y);
}
由于5的个数显然比2少,0的个数取决于5的个数
对于b进制下的0的个数
我们先把b质因数分解\(b=\prod p^{k_{i}}_{i}\)
对于每个质因数\(p_i\),我们按照递归函数求出n!中\(p_i\)的指数,然后再除以\(k_i\)
由于有指数影响,最大的质因数不一定出现的个数最小,不能像10进制那样直接计算
所以我们把每个质因数的结果取min即可
代码
#include<iostream>
#include<cstdio>
#include<cmath>
#define maxn 1000005
using namespace std;
typedef long long ll;
ll n,base;
ll p[maxn],k[maxn];
int cnt=0;
void divide(ll x){
ll sq=sqrt(x);
ll ans=0;
for(ll i=2;i*i<=x;i++){
if(x%i==0){
p[++cnt]=i;
while(x%i==0){
x/=i;
k[cnt]++;
}
}
}
if(x>1){
p[++cnt]=x;
k[cnt]=1;
}
}
ll f(ll x,ll y){
if(x<y) return 0;
else return x/y+f(x/y,y);
}
ll count(ll n,ll x){
divide(x);
ll ans=0x7fffffffffffffff;
for(int i=1;i<=cnt;i++){
ans=min(ans,f(n,p[i])/k[i]);
}
return ans;
}
int main(){
cin>>n>>base;
cout<<count(n,base);
}
Codeforces 1114C(数论)的更多相关文章
- Trailing Loves (or L'oeufs?) CodeForces - 1114C (数论)
大意: 求n!在b进制下末尾0的个数 等价于求n!中有多少因子b, 素数分解一下, 再对求出所有素数的最小因子数就好了 ll n, b; vector<pli> A, res; void ...
- Codeforces - 1114C - Trailing Loves (or L'oeufs?) - 简单数论
https://codeforces.com/contest/1114/problem/C 很有趣的一道数论,很明显是要求能组成多少个基数. 可以分解质因数,然后统计各个质因数的个数. 比如8以内,有 ...
- CodeForces 300C --数论
A - A Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- CodeForces 359D (数论+二分+ST算法)
题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=47319 题目大意:给定一个序列,要求确定一个子序列,①使得该子序 ...
- Codeforces 264B 数论+DP
题目链接:http://codeforces.com/problemset/problem/264/B 代码: #include<cstdio> #include<iostream& ...
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) Problem F (Codeforces 831F) - 数论 - 暴力
题目传送门 传送门I 传送门II 传送门III 题目大意 求一个满足$d\sum_{i = 1}^{n} \left \lceil \frac{a_i}{d} \right \rceil - \sum ...
- codeforces 1114C
题目连接 : https://codeforces.com/contest/1114/problem/C 题目大意:给一个整数n(1e18>=n>=0),和一个整数k(1e12>=k ...
- CodeForces 1202F(数论,整除分块)
题目 CodeForces 1213G 做法 假设有\(P\)个完整的循环块,假设此时答案为\(K\)(实际答案可能有多种),即每块完整块长度为\(K\),则\(P=\left \lfloor \fr ...
- Vasya and Beautiful Arrays CodeForces - 354C (数论,枚举)
Vasya and Beautiful Arrays CodeForces - 354C Vasya's got a birthday coming up and his mom decided to ...
随机推荐
- 用Fusion Log诊断同一版本冲突问题解决
处理方法,修改注册表 Add the following values to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion Add: DWORD Force ...
- SVN中trunk,branches,tags的使用明细--项目代码的管理
SVN在项目开发过程中有两种模式: 第一种:Subversion有一个很标准的目录结构,是这样的.比如项目是proj,svn地址为svn://proj/,那么标准的svn布局svn://proj/|+ ...
- 设备树中#address-cells和#size-cells作用
device tree source Example1 / { #address-cells = <0x1>; // 在 root node 下使用 1 個 u32 來代表 address ...
- globalAlpha 示例
代码实例: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- CF 49E Common ancestor
传送门 模拟赛T1就自闭了( 才不会说我是去刚T2了来着 感觉非常暴力的一个题? 出题人良心开大数据范围 n=100 还是原来的n^4*26算法我也是自闭了 不过貌似跑不到n^4? 真·大力出奇迹 一 ...
- Python lambda 多变量
>> x = list(map(lambda x, y: (x>3, y>0), (1,2,3,4,5), (0,1,2,3,4)))>>> x[(False ...
- 【leetcode】1023. Binary String With Substrings Representing 1 To N
题目如下: Given a binary string S (a string consisting only of '0' and '1's) and a positive integer N, r ...
- Redis事件通知示例
1. redis如同zk一样,提供了事件监听(或者说是回调机制), 下面是redis的配置说明: ############################# EVENT NOTIFICATION ## ...
- 开源大数据生态下的 Flink 应用实践
过去十年,面向整个数字时代的关键技术接踵而至,从被人们接受,到开始步入应用.大数据与计算作为时代的关键词已被广泛认知,算力的重要性日渐凸显并发展成为企业新的增长点.Apache Flink(以下简称 ...
- MariaDB强势席卷DB-Engines榜单后续,与阿里云达成全球独家战略合作
2018年10月份,DB-Engines 发布了月全球数据库排名,排名前三的一如既往还是Oracle.MySQL.Microsoft SQL Server.排名是重要指标,同时增长率的重要性也同样备受 ...