题目链接:传送门
解题思路:y1s1,拿到这题我脑袋中只有暴力,观摩了别人的博客,学到了点东西。对于本题,我们可以知道,在b进制后有几个0表示的是这个数是b的几次方的倍数,于是题目便转化为了求n的阶乘最大能被b的几次方整除,从唯一分解定理我们可以知道,我们对n的阶乘和b唯一分解得到:\(b=p1^{a1}\times p2^{a2}\times p3^{a3}……\)\(n!=p1^{b1}\times p2^{b2}\times p3^{b3}……\)
于是问题又转化为了求\(\{\frac{b1}{a1},\frac{b2}{a2}……\}\)
于是我们把b分解质因数,把因数和个数存在数组里,然后对于每个因数都去算a的阶乘里有多少个那个因数,然后除以它在b中的次数,求它可以够组成多少个b,对于每个因数都这么算,然后取最小值。
Code:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 1000005;
ll p[N],k[N],n,b;
int cnt;
ll f(ll x,ll y) {return x < y?0:x/y+f(x/y,y);
}void slove(ll x) {memset(p,0,sizeof p);memset(k,0,sizeof k);cnt = 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 work(ll n, ll b) {slove(b);ll ans = 0x3f3f3f3f3f3f3f3f;for(int i = 1;i <= cnt; ++i)ans = min(ans,f(n,p[i])/k[i]);return ans;
}int main()
{while(~scanf("%lld%lld",&n,&b))printf("%lld\n",work(n,b));return 0;
}

Codeforces 1114C(数论+唯一分解)相关推荐

  1. Codeforces数学1600day3[数学CodeForces - 1213D2, CodeForces - 1165E 数论,CodeForces - 1165D 因子分解]

    ps:day2太水了不写qwq A - Equalizing by Division (hard version) CodeForces - 1213D2 题目大意:给你n个数和一个k,然后你可以执行 ...

  2. CodeForces 359D (数论+二分+ST算法)

    题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=47319 题目大意:给定一个序列,要求确定一个子序列,①使得该子序 ...

  3. Codeforces 396A 数论,组合数学

    题意:给一个a数组,求b 数组的方案数,但是要求两者乘积相同. 分析: 不可能将它们乘起来,对于每个数质因数分解,得到每个质因子个数,遍历这些质因子,将某个质因子放到 对应的盒子里面,可以不放,方案数 ...

  4. 线段树扫描线求矩形周长详解

    线段树扫描线求矩形周长详解 原创 wucstdio 最后发布于2018-04-24 16:12:09 阅读数 841 收藏 发布于2018-04-24 16:12:09 版权声明:本文为博主原创文章, ...

  5. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  6. Codeforces Beta Round #17 D. Notepad (数论 + 广义欧拉定理降幂)

    Codeforces Beta Round #17 题目链接:点击我打开题目链接 大概题意: 给你 \(b\),\(n\),\(c\). 让你求:\((b)^{n-1}*(b-1)\%c\). \(2 ...

  7. Codeforces 1106F Lunar New Year and a Recursive Sequence (数学、线性代数、线性递推、数论、BSGS、扩展欧几里得算法)...

    Codeforces 1106F Lunar New Year and a Recursive Sequence (数学.线性代数.线性递推.数论.BSGS.扩展欧几里得算法) 哎呀大水题..我写了一 ...

  8. Educational Codeforces Round 37 G. List Of Integers (二分,容斥定律,数论)

    G. List Of Integers time limit per test 5 seconds memory limit per test 256 megabytes input standard ...

  9. [CodeForces 1603C] Extreme Extension(贪心 + 数论分块优化dp)

    problem CodeForces solution observation1:\text{observation1}:observation1: 对于一个非空子段 [l,r][l,r][l,r], ...

最新文章

  1. 珂朵莉的约数(牛客练习赛9)
  2. Android Launcher 分析
  3. game,match,competition,contest区别
  4. 如何将拷贝过来的数据 *.ibd 文件生效
  5. YUI3学习笔记 ( 8 )
  6. linux telnet mysql_Linux下安装telnet(傻瓜教程)
  7. sqldf包:让SQL语句在R语言中执行
  8. Officescan防毒墙安装部署手册
  9. 小米路由器4a开发版固件_发现篇免拆刷小米路由器4a千兆版刷第三方固件的贴子!...
  10. 基于keras实现双向GRU的中文情感分析
  11. pytorch读取tif文件方法
  12. 进程虚拟地址空间区域划分
  13. ONNXRUNTIME_EXCEPTION : Non-zero status code returned while running Where node. Name:‘Where‘
  14. 17个小时内,各地相继出手帮中小企业,地产商减租百亿
  15. SSM毕设项目游泳馆管理系统851a0(java+VUE+Mybatis+Maven+Mysql)
  16. Python-子列表最大长度
  17. Matlab中安装NURBS工具箱及使用
  18. c++ 多线程 “锁”
  19. NEO源码分析之UTXO全局资产
  20. AFNetworking2.4.1解析

热门文章

  1. 如何设计学术海报(翻译)
  2. union和union all区别
  3. 2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础
  4. jQuery控制checkbox选中状态但是不显示选中
  5. vim的几个常用操作
  6. 时间对象与字符串对象之间相互转换
  7. 获取FileUpload上传的文件大小
  8. C#操作EXCLE表
  9. 动态绑定dropdownlist --开始拣.NET
  10. 目标检测标注格式转换:labelme2yolo yolo2labelme