【数论】小A进学校
小A进学校
题目描述
保安会说出两个整数n和k,小A需要回答的阶乘在进制下末尾零的个数。
输入
输出
样例输入
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进学校的更多相关文章
- BZOJ4635 : 数论小测验
第一问: 设$a[i]$表示使用$[1,i]$的数字$n$次形成的数组里有多少个$\gcd=1$. 考虑容斥,则$a[i]=i^n-\sum_{j=2}^i a[\lfloor\frac{i}{j}\ ...
- Codeforces Round #538 (Div. 2) C 数论 + 求b进制后缀零
https://codeforces.com/contest/1114/problem/C 题意 给你一个数n(<=1e8),要你求出n!在b进制下的后缀零个数(b<=1e12) 题解 a ...
- codeforces 615 D. Multipliers (数论 + 小费马定理 + 素数)
题目链接: codeforces 615 D. Multipliers 题目描述: 给出n个素数,这n个素数的乘积等于s,问p的所有因子相乘等于多少? 解题思路: 需要求出每一个素数的贡献值,设定在这 ...
- noip考前抱佛脚 数论小总结
exCRT 求解韩信点兵问题,常见的就是合并不同\(mod\). 先mo一发高神的板子 for(R i=2;i<=n;++i){ ll Y1,Yi,lcm=Lcm(p[i],p[1]); exg ...
- C++-蓝桥杯-小计算器[进制转化][模拟]
#include <cstdio> #include <string> #include <cstring> #include <iostream> u ...
- [SDOI2009]学校食堂Dining
题目描述 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数 ...
- [SDOI2009]学校食堂
题目描述 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数 ...
- SDOI 2009 学校食堂
洛谷 P2157 [SDOI2009]学校食堂 洛谷传送门 JDOJ 1924: [SDOI2009]学校食堂Dining JDOJ传送门 Description 小F 的学校在城市的一个偏僻角落,所 ...
- BZOJ 1226: [SDOI2009]学校食堂Dining
1226: [SDOI2009]学校食堂Dining Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 730 Solved: 446[Submit][ ...
随机推荐
- 2019 SDN上机第一次实验作业
1. 安装轻量级网络仿真工具Mininet 先从GitHub上获取mininet源码,再输入命令进行安装,代码分别如下: git clone https://github.com/mininet/mi ...
- 覆盖elementui样式
前台以表格形式展示后台数据,图片或视频点击后弹出框播放,用el-dialog实现. 希望播放视频的时候不显示dialog的背景那些. 尝试 scoped 无果 <style lang=" ...
- 解决无法将java项目部署到tomcat中去
project facets java转成web项目 用Eclipse开发项目的时候,把一个Web项目导入到Eclipse里会变成了一个Java工程,将无法在Tomcat中进行部署运行. 方法: 1. ...
- composer.lock文件的作用
在使用composer后目录中会出现2个文件,composer.lock和composer.json,现在来说说这两个文件的作用. 1.composer.json composer.json文件中保存 ...
- Variance Inflation Factor (VIF) 方差膨胀因子解释_附python脚本
python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...
- 【转】把sqlite3数据导入到MySQL中
之前我们默认使用的是SQLite数据库,我们开发完成之后,里面有许多数据.如果我们想转换成Mysql数据库,那我们先得把旧数据从SQLite导出,然后再导入到新的Mysql数据库里去. 1.SQLit ...
- Cocoa Framework中GB2312与UTF16编码之间的相互转换
代码如下: NSString *orgStr = @"你好,世界!"; NSStringEncoding enc = CFStringConvertEncodingToNSStri ...
- 转「服务器运维」如何解决服务器I/O过高的问题
问题缘起: 当我习惯性地用top查看任务运行状态时,发现我运行的100个任务,只有3个在运行,其他都在摸鱼状态.同时发现我的任务进程都是"D"状态(未截图),而不是R(运行)状态. ...
- python中验证码连通域分割的方法详解
python中验证码连通域分割的方法详解 这篇文章主要给大家介绍了关于python中验证码连通域分割的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需 ...
- Swift4.0复习整数,浮点数,布尔值
1.类型相互转换: Int(a) Float(b) let a = Bool(truncating: NSNumber(value: c)) 2.元组: let tuple: (Int, String ...