Codeforces Round #538 (Div. 2) C 数论 + 求b进制后缀零
https://codeforces.com/contest/1114/problem/C
题意
给你一个数n(<=1e8),要你求出n!在b进制下的后缀零个数(b<=1e12)
题解
- a在b进制下的后缀零个数?
\(a=p_1^{x_1}*p_2^{x_2}*p_3^{x_3}...*p_n^{x_n}\),
\(b=q_1^{y_1}*q_2^{y_2}*q_3^{y_3}...*q_n^{y_n}\)
p,q为素因子,后缀零个数为min(floor(\(x_i/y_i\))) - 求p在n!中的个数?
求1~n有多少个数有\(p\),\(p^2\),\(p^3\),...,\(p^k<n\)
for(i=0;i<p.size();i++){
x=p[i];
tp=0;
while(x<=n){
tp+=n/x;
if(n*1.0/x>=p[i])x*=p[i];
else break;
}
ans=min(tp/X[i],ans);
}
代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,b,i,ans=0,tp,x;
vector<ll>a;
ll X[100],sz,pr[1000005],num,vi[1000005];
void init(){
for(ll i=2;i<=1e6;i++){
if(!vi[i]){
pr[num++]=i;
for(ll j=0;j<num&&i*pr[j]<=1e6;j++){
vi[pr[j]*i]=1;
if(i%pr[j]==0)break;
}
}
}
}
int main(){
init();
cin>>n>>b;tp=b;
for(i=0;i<num;i++){
if(tp%pr[i]==0){
while(tp%pr[i]==0){
tp/=pr[i];X[sz]++;
}
a.push_back(pr[i]);
sz++;
}
if(tp==1)break;
}
if(tp>1){
a.push_back(tp);
X[sz]++;
}
ans=1e18;
for(i=0;i<a.size();i++){
x=a[i];
tp=0;
while(x<=n){
tp+=n/x;
if(n*1.0/x>=a[i])x*=a[i];
else break;
}
ans=min(tp/X[i],ans);
}
cout<<ans;
}
Codeforces Round #538 (Div. 2) C 数论 + 求b进制后缀零的更多相关文章
- Codeforces Round #538 (Div. 2) (A-E题解)
Codeforces Round #538 (Div. 2) 题目链接:https://codeforces.com/contest/1114 A. Got Any Grapes? 题意: 有三个人, ...
- Codeforces Round #538 (Div. 2) (CF1114)
Codeforces Round #538 (Div. 2) (CF1114) 今天昨天晚上的cf打的非常惨(仅代表淮中最低水平 先是一路缓慢地才A掉B,C,然后就开始杠D.于是写出了一个O( ...
- Codeforces Round #538 (Div. 2)
目录 Codeforces 1114 A.Got Any Grapes? B.Yet Another Array Partitioning Task C.Trailing Loves (or L'oe ...
- Codeforces Round #538 (Div. 2) C. Trailing Loves (or L'oeufs?) (分解质因数)
题目:http://codeforces.com/problemset/problem/1114/C 题意:给你n,m,让你求n!换算成m进制的末尾0的个数是多少(1<n<1e18 ...
- Codeforces Round #538 (Div. 2) CTrailing Loves (or L'oeufs?)
这题明白的意思就是求n!在b进制下的后缀零的个数. 即最大的n!%(b^k)==0的k的值.我们需要将如果要构成b这个数,肯定是由一个个质因子相乘得到的.我们只需要求出b的质因子,然后分析n!中可以组 ...
- Codeforces Round #382 Div. 2【数论】
C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...
- Codeforces Round #538 (Div. 2) F 欧拉函数 + 区间修改线段树
https://codeforces.com/contest/1114/problem/F 欧拉函数 + 区间更新线段树 题意 对一个序列(n<=4e5,a[i]<=300)两种操作: 1 ...
- Codeforces Round #538 (Div. 2) E 随机数生成
https://codeforces.com/contest/1114/problem/E 题意 交互题,需要去猜一个乱序的等差数列的首项和公差,你能问两种问题 1. 数列中有没有数比x大 2. 数列 ...
- Codeforces Round #538 (Div. 2) D. Flood Fill 【区间dp || LPS (最长回文序列)】
任意门:http://codeforces.com/contest/1114/problem/D D. Flood Fill time limit per test 2 seconds memory ...
随机推荐
- 转:WCAT 压力工具介绍
原文地址:http://blogs.msdn.com/alikl/archive/2008/03/09/stress-test-asp-net-web-application-with-free-wc ...
- 如何在比较1.5 len的次数下,找到整型数组最大最小值
2016-11-11 #include <iostream> #include<stdlib.h> #include<stdio.h> using namespac ...
- 【php 之根据函数名称动态调用该函数】
解释函数:call_user_func()以及函数call_user_func_array() 对于PHP程序员而言,函数是再熟悉不过的事物了,毕竟我们整天都在和PHP内置函数以及我们自定义的函数打交 ...
- python------栈和队列的实现
一.神马是栈 古有粮仓,即为栈.粮仓的特点就是最后放进去的谷粒,放在最上面.打仗行军,取粮是怎么取最快?肯定是最先取最上面的!栈这一种常用到的数据结构就是这种特点:后进先出(Last In First ...
- layui禁用侧边导航栏点击事件
layui是一款优秀的前端模块化css框架,作者是贤心 —— 国内的一位前端大佬. 我用layui做过两个完整的项目,对她的感觉就是,这货非常适合做后台管理界面,且基于jquery,很容易上手.当然, ...
- 数据节点-df 无法输出结果
1. 删除了 a 机器的/opt/data 目录 2.b与c 机器挂载了 a机器的/opt/data 3.df -h 无法输出结果 最后参考:http://blog.csdn.net/lufeisan ...
- git add 文件夹
1. 本地新建好文件夹,在文件夹里新建*.md 2. 切换到文件夹父目录 3. git add 文件夹名 4. git commit 5. git push
- 9.Mysql字符集
9.字符集9.1 字符集概述 字符集就是一套文字符号及其编码.比较规则的集合. ASCII(American Standard Code for Information Interchange)字符集 ...
- js 箭头函数
箭头函数 ES6标准新增了一种新的函数:Arrow Function(箭头函数). x => x * x相当于: function (x) { return x * x; }箭头函数相当于匿名函 ...
- C# 通过api函数GetPrivateProfileString读取ini文件,取不到值
通过api函数GetPrivateProfileString读取ini文件,取不到值,测试了好长时间,都不行 确认程序,ini文件都没有错误的情况,最后发现是ini文件编码的原因. 将ini文件的编码 ...