题目:https://codeforces.com/contest/1114/problem/C

将b分解为若干素数乘积,记录每个素数含多少次方 b = p1^yp2^y2·...·pm^ym.

然后求n!种每个素数含多少次方n ! = p1^xp2^x2·...·pm^xm·

答案就是

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<cmath>
#include<sstream>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const ll inf=0x3f3f3f3f;
ll n,b,res=1e18;
void solve(ll x,ll num){ //每个质因子 拥有的数量
ll tp=,ans=;
while(tp<=n/x){ //不能用tp*x会爆精度,有多少个x,就是先看有多少个x,再x^2,x^3,直到>n
tp*=x;
ans+=n/tp;
}
res=min(res,ans/num);
}
int main(){
std::ios::sync_with_stdio();
cin>>n>>b;
ll t=b;
for(ll i=;i*i<=t;++i){ //分解质因子
if(t%i==){
ll num=;
while(t%i==){
t/=i;
num++;
}
solve(i,num);
}
}
if(t>) solve(t,);
cout<<res<<endl;
return ;
}

十进制范围 [l,r] 内有多少整数满足在 k 进制下末尾恰好有 m 个 0

题目:https://acm.ecnu.edu.cn/contest/140/problem/D/

如果一个数的m进制后有k个零,就一定能被m 整除,而在含k个零中,一定存在含k+1个零的(含k+1个零就意味着一定含k个零),在1,2,3....x中,能被m 整除的有⌊x/mk⌋个,所以只含k个零的个数有ansx = ⌊x/mk⌋-⌊x/mk+1⌋,区间的话就是ansr - ansl-1 注意是l-1

#include<bits/stdc++.h>
using namespace std ;
#define ll long long
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
ll l,r;int k,m;
scanf("%lld%lld%d%d",&l,&r,&k,&m);
l--; while(m--)
{
r/=k;
l/=k;
}
ll ans1=l-l/k,ans2=r-r/k;
printf("%lld\n",ans2-ans1);
}
}

(找到最大的整数k使得n! % s^k ==0) (求n!在b进制下末尾0的个数) (区间满足个数)的更多相关文章

  1. n!在k进制下的后缀0

    问n! 转化成k进制后的位数和尾数的0的个数.[UVA 10061 How many zeros and how many digits?] Given a decimal integer numbe ...

  2. 51 Nod 1116 K进制下的大数

    1116 K进制下的大数  基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 有一个字符串S,记录了一个大数,但不知这个大数是多少进制的,只知道这个数 ...

  3. bzoj 3000 Big Number 估算n!在k进制下的位数 斯特林公式

    题目大意 求n!在k进制下的位数 2≤N≤2^31, 2≤K≤200 分析 作为数学没学好的傻嗨,我们先回顾一下log函数 \(\log_a(b)=\frac 1 {log_b(a)}\) \(\lo ...

  4. 求x!在k进制下后缀零的个数(洛谷月赛T1)

    求x!在k进制下后缀和的个数 20分:     求十进制下的x!后缀和的个数 40分: 高精求阶乘,直接模拟过程 (我不管反正我不打,本蒟蒻最讨厌高精了) 60分     利用一个定理(网上有求x!在 ...

  5. 陕西师范大学第七届程序设计竞赛网络同步赛 F WWX的礼物【数学/k进制下x^n的位数/log】

    链接:https://www.nowcoder.com/acm/contest/121/F来源:牛客网 题目描述 WWX的女朋友送给了他一个礼物,可是礼物却被一把K进制密码锁锁住了.在礼物盒上还有一张 ...

  6. 数位DP 求K进制下0~N的每个数每位上出现的数的总和

    好久没写博客了,因为感觉时间比较紧,另一方面没有心思,做的题目比较浅也是另一方面. 热身赛第二场被血虐了好不好,于是决定看看数位DP吧. 进入正题: 如题是一道经(简)典(单)的数位dp. 第一步,对 ...

  7. 51nod 1116 K进制下的大数

    你万万想不到,Long Long 就能存下的数据 #include <iostream> #include <cstdio> #include <cstdlib> ...

  8. [51nod1116]K进制下的大数

    解题关键:$A\% (k - 1) = (A[0] + A[1]*k + A[2]*{k^2} + ...A[n]*{k^n})\% (k - 1) = (A[0] + A[1] + ...A[n]) ...

  9. light oj 1045 - Digits of Factorial K进制下N!的位数

    1045 - Digits of Factorial Factorial of an integer is defined by the following function f(0) = 1 f(n ...

随机推荐

  1. Lambda03 方法引用、类型判断、变量引用

    1 方法引用 1.1 方法引用的好处 方法引用结合 Lambda 可以引用已存在的方法,省略很多编码,而且可读性更强,它可以自动装配参数与返回值. 在编写lambda表达式的时候可以通过方法引用的方式 ...

  2. ubuntu16.04 安装openpose

    安装 Anaconda3 Tensorflow-cpu python3tensorflow 1.4.1+opencv3, protobuf, python3-tk ================== ...

  3. 10-python中的requests应用

    使用request方便: #_*_ coding: utf-8 _*_ ''' Created on 2018年7月14日 @author: sss ''' import requests impor ...

  4. oralce错误总结

    1>System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本. 给oracle客户端的bin目录添加““Authenticated Users”权 ...

  5. ubuntu 安装两个版本的Anaconda

    1.下载anaconda2/anaconda3,下载地址:https://www.anaconda.com/download/#linux,anaconda官网如下所示,选择对应版本下载. 2.使用如 ...

  6. C语言实践 输出100以内的素数

    int main() { int isprime = 1; for (int i = 2; i < 101; i++) { isprime = 1;//要确保每次循环都要把这个值设置为1,不然上 ...

  7. coordinatewise 是什么意思?

    As far as I remember, in the context of optimization, "coordinate wise" means that you are ...

  8. Oracle——单行函数

    两种 SQL 函数 单行函数 字符函数 大小写控制函数 SELECT employee_id, last_name, department_id FROM employees WHERE last_n ...

  9. Daubechies Wavelet

    The Daubechies wavelets, based on the work of Ingrid Daubechies, are a family of orthogonal wavelets ...

  10. Linq 左连接 left join

    Suppose you have a tblRoom and tblUserInfo. Now, you need to select all the rooms regardless of whet ...