小A进学校

题目描述

近日,清华大学挖出来一个明清古墓。小A决定冒充考古系科研人员去盗墓。他遇到的第一个难关是来自校门口保安的质疑,因为小没有清华学生证,所以保安决定通过问问题的方式验证小A的身份。

保安会说出两个整数n和k,小A需要回答的阶乘在进制下末尾零的个数。

输入

一行两个整数,表示n和k。

输出

一个整数表示n的阶乘在k进制下末尾零的个数。

样例输入

10 40

样例输出

2

提示


【题解】

  进制为k,然后对k进行质因数分解即可,然后取每个质数,搜索有多少个,然后每个  质数的个数之和 ,再取一个最小值即可。

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll ;
const int N = 2e6+ ; /* Euler function */
int prime[N] , cnt ;
bool Is_prime[N];
void Euler(){
for( int i = ; i < N ; i++ ){
if( !Is_prime[i] ){
prime[cnt++] = i ;
}
for( int j = ; j < cnt && prime[j] * i < N ; j ++ ){
Is_prime[ prime[j] * i ] = true ;
if( i % prime[j] == ){
break;
}
}
}
} ll n , k ;
ll A[N],B[N],C[N];
ll qpow( ll a , ll b ){
ll ans = ;
while( b ){
if( b & ) ans = ans * a ;
b >>= ;
a = a * a ;
}
return ans ;
}
int main()
{
Euler() ;
/*
for( int i = 0 ; i < 10 ; i++ ){
printf("%d\n",prime[i]);
}
*/ ios_base :: sync_with_stdio( false );
cin.tie(NULL) , cout.tie(NULL);
cin >> n >> k ; int tot = ;
for( int i = ; i < cnt && prime[i] * prime[i] <= k ; i++ ){
if( k % prime[i] == ){
A[tot] = prime[i] ;
while( k % prime[i] == ){
k /= prime[i] ;
B[tot] ++ ;
}
tot ++ ;
}
} if( k != 1ll ){
A[tot] = k ;
B[tot] = ;
tot ++ ;
} for( int i = ; i < tot ; i++ ){
ll tmp = A[i] ;
//cout << tmp << endl;
ll num = n / tmp ;
for( ; tmp <= n / A[i] ; ){
tmp = tmp * A[i] ;
num += n / tmp ;
}
tmp = qpow( A[i] , B[i] );
C[i] = num / B[i] ;
//cout << A[i] << " " << num << " " << tmp << " " << B[i] << endl;
}
ll ans = 0x7fffffffffffffff;
for( int i = ; i < tot ; i++ ){
ans = min( ans , C[i] ) ;
}
cout << ans << endl ;
return ;
}

【数论】小A进学校的更多相关文章

  1. BZOJ4635 : 数论小测验

    第一问: 设$a[i]$表示使用$[1,i]$的数字$n$次形成的数组里有多少个$\gcd=1$. 考虑容斥,则$a[i]=i^n-\sum_{j=2}^i a[\lfloor\frac{i}{j}\ ...

  2. Codeforces Round #538 (Div. 2) C 数论 + 求b进制后缀零

    https://codeforces.com/contest/1114/problem/C 题意 给你一个数n(<=1e8),要你求出n!在b进制下的后缀零个数(b<=1e12) 题解 a ...

  3. codeforces 615 D. Multipliers (数论 + 小费马定理 + 素数)

    题目链接: codeforces 615 D. Multipliers 题目描述: 给出n个素数,这n个素数的乘积等于s,问p的所有因子相乘等于多少? 解题思路: 需要求出每一个素数的贡献值,设定在这 ...

  4. noip考前抱佛脚 数论小总结

    exCRT 求解韩信点兵问题,常见的就是合并不同\(mod\). 先mo一发高神的板子 for(R i=2;i<=n;++i){ ll Y1,Yi,lcm=Lcm(p[i],p[1]); exg ...

  5. C++-蓝桥杯-小计算器[进制转化][模拟]

    #include <cstdio> #include <string> #include <cstring> #include <iostream> u ...

  6. [SDOI2009]学校食堂Dining

    题目描述 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数 ...

  7. [SDOI2009]学校食堂

    题目描述 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数 ...

  8. SDOI 2009 学校食堂

    洛谷 P2157 [SDOI2009]学校食堂 洛谷传送门 JDOJ 1924: [SDOI2009]学校食堂Dining JDOJ传送门 Description 小F 的学校在城市的一个偏僻角落,所 ...

  9. BZOJ 1226: [SDOI2009]学校食堂Dining

    1226: [SDOI2009]学校食堂Dining Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 730  Solved: 446[Submit][ ...

随机推荐

  1. SDN上机第五次作业

    2019 SDN上机第五次作业 1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 1.1描述官方教程实现了一个什么样的交换机功能? 答:官方教程实 ...

  2. Flutter扫码识别二维码内容

    前面一篇写了生成二维码图片,这篇来写使用相机扫描识别二维码 识别二维码需要用到插件 barcode_scan 首先在 pubspec.yaml 文件中添加以下依赖,添加依赖后在 pubspec.yam ...

  3. http json token

    http json token https使用证书来保证链接的安全,是目前最为流行的做法. 另一种保证HTTP 函数的安全,就是http json token,只有TOKEN验证通过,才能调用方法(一 ...

  4. VOT-2016 代码评测工具的使用说明

    VOT-2016 代码评测工具的使用说明 2018-10-14 09:37:04 VOT-2016 官网:http://www.votchallenge.net/vot2016/ 评测代码链接:htt ...

  5. [Java.File]如果写 File filesFolder = new File("/") ,在windows系统中,filesFolder 会去找哪个盘符? 答案:程序运行路径的根盘符.

    首先这段代码在Unix/Linux系统上会去找根路径,但在Windows系统上会去找C:盘还是D:盘还是其它盘呢? 其实它会去找user.dir所在盘符的根目录,user.dir即用户的当前工作目录, ...

  6. SQL Server 查找空值

    需要查找某一列为空的数据 )NULL不能用 “=”运算符 )NULL不支持+-*/ <> )不同的函数对NULL的支持不一样,使用前要测试,不能靠猜,不能凭经验

  7. The Practical Importance of Feature Selection(变量筛选重要性)

    python机器学习-乳腺癌细胞挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003&u ...

  8. 官方Android Camera2 录像示例--停止录像时崩溃修正

    官方Android 使用Camera2示例项目地址:https://github.com/android/camera-samples 视频录像示例:https://github.com/androi ...

  9. oracle连接-会话-进程

    ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;CREATE PROFILE kyc_pro LIMIT IDLE_TIME 2;alter user kyc_acc pro ...

  10. 从0开始学爬虫2之json的介绍和使用

    从0开始学爬虫2之json的介绍和使用 Json 一种轻量级的数据交换格式,通用,跨平台 键值对的集合,值的有序列表 类似于python中的dict Json中的键值如果是字符串一定要用双引号 jso ...