CF#538(div 2) C. Trailing Loves (or L'oeufs?) 【经典数论 n!的素因子分解】

深度学习---双层神经网络中矩阵的运算及其含义记录 深度学习---双层神经网络中矩阵的运算及其含义记录神经网络的正向传播与反向传播正向传播第一层的权重矩阵第一层的输入矩阵Z^1^ = W^1^X^1^ + b^1^A^1^ = σ(Z^1^)第二层的权重矩阵第二层的输入矩阵Z^2^ = W^2^A^1^ + b^2^反向传播dz^2^ = A^2^ - Ydw^2^ = 1/n dz^2^A^1T^db^2^ = 1/n np.sum(dz^2... 阅读详情

任意门:http://codeforces.com/contest/1114/problem/C

C. Trailing Loves (or L'oeufs?)

time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
The number "zero" is called "love" (or "l'oeuf" to be precise, literally means "egg" in French), for example when denoting the zero score in a game of tennis.

Aki is fond of numbers, especially those with trailing zeros. For example, the number 92009200 has two trailing zeros. Aki thinks the more trailing zero digits a number has, the prettier it is.

However, Aki believes, that the number of trailing zeros of a number is not static, but depends on the base (radix) it is represented in. Thus, he considers a few scenarios with some numbers and bases. And now, since the numbers he used become quite bizarre, he asks you to help him to calculate the beauty of these numbers.

Given two integers nn and bb (in decimal notation), your task is to calculate the number of trailing zero digits in the bb-ary (in the base/radix of bb) representation of n!n! (factorial of nn).

Input

The only line of the input contains two integers nn and bb (1≤n≤10181≤n≤1018, 2≤b≤10122≤b≤1012).

Output

Print an only integer — the number of trailing zero digits in the bb-ary representation of n!n!

Examples
input
Copy
6 9
output
Copy
1
input
Copy
38 11
output
Copy
3
input
Copy
5 2
output
Copy
3
input
Copy
5 10
output
Copy
1
Note

In the first example, 6!(10)=720(10)=880(9)6!(10)=720(10)=880(9).

In the third and fourth example, 5!(10)=120(10)=1111000(2)5!(10)=120(10)=1111000(2).

The representation of the number xx in the bb-ary base is d1,d2,…,dkd1,d2,…,dk if x=d1bk−1+d2bk−2+…+dkb0x=d1bk−1+d2bk−2+…+dkb0, where didi are integers and 0≤di≤b−10≤di≤b−1. For example, the number 720720 from the first example is represented as 880(9)880(9) since 720=8⋅92+8⋅9+0⋅1720=8⋅92+8⋅9+0⋅1.

You can read more about bases here.

 

题意概括:

求 n! 转化为 b 进制下末尾有多少个 0.

 

解题思路:

原题:swjtuOJ 2090

这是一道很好的数论题。

首先转换一下思路:

要求 n! 在 b 进制下有多少个尾 0 就相当于 求 n! % (b^k) == 0 的最大 k。

那么我们现在把 n! 看作一个数 A。问题就是 求 A % (b^k) == 0 的最大 k;

我们知道有素数分解定理: b = p1^a1 * p2^a2 * p3^a3 ...;

那么我们如果可以求得 A 里面 p1^b1 * p2^b2 * p3^b3 ...  的 b1, b2, b3...

那么答案 ans = min(ans, ai/bi ) 了也就是要整除,首先要满足最小的那个能整除。

 

(1)首先对 b 进行素因子分解,直接暴力(log b), 用一个数组离散化形成该素因子的编号和该素因子的幂的映射 或者 用map存储该素因子的幂,得到所有素因子以及素因子的幂 

(2)对于每一个素因子p,计算对应的 A(即 n! ) 中素因子p的幂,两者相除取所有p幂的最小值就是对应的最大整数。

 

这里求 n! 下 素因子 p 的幂 用累除法,因为存在推论:

n! 下 p 的幂 = [ n/p ] + [ n/(p^2) ] + [ n/(p^3) ]  ...

 

学习:

https://blog.youkuaiyun.com/Wen_Yongqi/article/details/86976902

 

AC code:

 1 #include<cstdio>
 2 #include<algorithm>
 3 #include<iostream>
 4 #include<cstring>
 5 #include<vector>
 6 #include<queue>
 7 #include<cmath>
 8 #include<set>
 9 #include<map>
10 #define INF 0x3f3f3f3f
11 #define LL long long
12 using namespace std;
13 const int MAXN = 2e6+1000;
14 LL N, B;
15 vector<LL>prime;
16 //LL num[MAXN];
17 map<LL, int>mmp;
18 void get_p(LL n)
19 {
20     LL len = sqrt((double)n);
21     //printf("len %lld\n", len);
22     for(LL i = 2; i <= len; i++){
23         if(n%i == 0){
24             prime.push_back(i);
25             while(n%i == 0){
26                 n/=i;
27                 //num[prime.size()-1]++;
28                 mmp[i]++;
29             }
30         }
31     }
32     if(n != 1){
33         prime.push_back(n);
34 //        num[prime.size()-1]++;
35         mmp[n]++;
36     }
37 }
38 
39 LL calc(LL n, LL p)
40 {
41     LL res = 0;
42     while(n){
43         res += n/p;
44         n/=p;
45         //puts("zjy");
46     }
47     return res;
48 }
49 
50 int main()
51 {
52     LL sum = 1LL;
53     scanf("%I64d %I64d", &N, &B);
54     get_p(B);
55     LL ans = (1LL<<62);
56     for(LL i = 0; i < prime.size(); i++){
57 //        ans = min(ans, calc(N, prime[i])/num[i]);
58         //puts("zjy");
59         ans = min(ans, calc(N, prime[i])/mmp[prime[i]]);
60     }
61 
62     printf("%I64d\n", ans);
63     return 0;
64 }

 

Cadence IC 618实战:从与非门到环形振荡器的完整版图设计流程(含DRC/LVS避坑点) 本文详细介绍了使用Cadence IC 618进行从与非门到环形振荡器的完整版图设计流程,包括环境准备、基础设计规范、层次化设计、DRC/LVS验证及后仿真优化。特别提供了实战中的避坑技巧和优化建议,帮助工程师高效完成集成电路设计任务。 阅读详情

相关推荐

震坤行:企业 MRO 物料标准化革新之路

那产生这些问题的原因是什么呢?要想解决此问题,企业高层必须下定决心对历史数据进行梳理,并善于利用信息技术,融合企业管理的流程机制,建立起一套适合企业发展的物料标准化管理体系,循序渐进,逐步规避由物料不规范带来的管理问题,最终使得这套标准化体系能够满足企业多元化业务发展需要。国内某电子制造头部企业原先内部物料无对应分类,仅有物料编码,给企业对采购、领料的过程中造成极大的不变,基于震坤行的目录结构,预测物料对应的分类,预测准确率达到80%以上,再辅以人工校正,最终搭建起一套标准的目录体系,如图2.2所示。

carson99的博客 421

Codeforce 1114C. Trailing Loves (or L'oeufs?)

C. Trailing Loves (or L'oeufs?) http://codeforces.com/contest/1114/problem/C time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output The...

Wind_bow的博客 362

dell r630 配置raid_DELL服务器RAID配置图文教程

名称解释:Disk Group:磁盘组,这里相当于是阵列,例如配置了一个RAID5,就是一个磁盘组VD(Virtual Disk): 虚拟磁盘,虚拟磁盘可以不使用阵列的全部容量,也就是说一个磁盘组可以分为多个VDPD(Physical Disk): 物理磁盘HS:Hot Spare 热备Mgmt:管理【一】创建逻辑磁盘1、按照屏幕下方的虚拟磁盘管理器提示,在VD Mgmt菜单(可以通过CTRL+P...

weixin_33253741的博客 3510

C. Trailing Loves (or L'oeufs?) 数论---唯一分解定理的应用

先来看一道来自cf的题吧: 题意大概是 求 n! 转化为 b 进制下末尾有多少个 0. http://codeforces.com/contest/1114/problem/C C. Trailing Loves (or L'oeufs?) time limit per test 2 seconds memory limit per test 256 megabytes ...

ccsu_deer 676

告别信号毛刺!手把手教你用ADS和IBIS-AMI模型搞定PCIe Gen3眼图仿真

本文详细介绍了如何使用Keysight ADS和IBIS-AMI模型进行PCIe Gen3眼图仿真,解决高速信号传输中的信号质量问题。从仿真环境搭建、S参数预处理到眼图优化与故障排除,提供了一套完整的工程实践指南,帮助工程师提升PCIe Gen3接口的信号完整性。

weixin_28366053的博客 371

别再手动量了!用Python+Open3D给BIM模型做‘CT扫描’,自动揪出施工误差(附完整代码)

本文介绍如何利用Python和Open3D技术实现BIM模型的毫米级施工误差自动检测。通过点云预处理、模型配准和偏差分析,系统能自动生成三维差异热力图和验收报告,显著提升施工质量检测效率。特别适合混凝土结构错位和钢结构安装偏差等常见问题的智能分析。

weixin_29284657的博客 244

Codeforces1114 C Trailing Loves (or L'oeufs?)

质因数分解

a free man 1371

合成生物学中试:花钱只是开始,烧钱才是常态

2026年合成生物学行业面临严峻产业化挑战:多家企业终止发酵项目或延期投产,显示从实验室到工厂的转化困境。核心问题并非基因合成成本,而是工艺放大难题——67%项目在中试阶段因工艺问题失败。AI辅助无法替代工程经验,菌株-配方-工艺的三元适配需要长期数据积累。中试成本惊人,涉及设备折旧、原料消耗和稀缺工艺人才,而行业普遍回避讨论这些工程现实,导致认知偏差。建议创业者提前布局中试,将其视为核心竞争力而非简单成本项。合成生物学的真正瓶颈在于工程化能力,这需要时间沉淀而非技术叙事。

AIexander的博客 943

Codeforces 1114 简要题解

文章目录A题B题C题D题E题F题 传送门 然而这场div2div2div2没有什么难度比较大的题 A题 传送门 题意简述:三个人分别至少选x,y,zx,y,zx,y,z件物品,有三种物品数量分别为a,b,ca,b,ca,b,c,其中第一个人只能选第一种,第二个人不能选第三种,第三个人随意问能否满足三个人需求。 思路: 直接模拟即可。 代码: #in...

weixin_30407613的博客 259

西门子840D新建项目

1、需要一个32位的WIN7或者XP系统,并且已经在系统中安装完成西门子840Dsl开发包和VS2008。(我采用的是XP系统虚拟机) 2、在开始->所有程序找到如下位置 3、在这个位置打开Visual Studio 4、文件->新建->项目 名称和位置都可以随意更改,点击确定。 5、在左侧选择第二个选项进入下面的界面 点击“Add Screen”按钮 可以修改“class name”然后点击“OK”返回上一个界面,再点击“Add Form” 可以修...

qq_36987047的博客 1861

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的危险物品检测系统(深度学习模型+PySide6界面+训练数据集+Python代码)

随着公共安全需求的日益增长,危险物品检测技术在社会安防、交通安检等领域发挥着重要作用。本文介绍了一个基于YOLO系列深度学习框架的危险物品检测系统,集成了YOLOv8、YOLOv7、YOLOv6和YOLOv5四种先进的物体检测算法。系统采用PySide6开发了用户友好的图形界面,提供了完整的训练代码、预训练模型和数据集构建方案。实验结果表明,该系统在危险物品检测任务上实现了高精度和高实时性,为实际应用提供了可靠的技术支持。

YOLO 158

【CF#538div2:C】Trailing Loves (or L'oeufs?)(质因数分解+分析)

题目地址:https://codeforces.com/contest/1114/problem/C 题意 给出十进制的数n,和要转换的进制b,求n!转化成b进制之后末尾有多少个0 解题思路 就是求最大的k,使 对b质因子分解:,记录对应的个数(用map存对应关系,vector存) 对n!质因子分解:(后面的x1...xn在求结果的时候不用考虑) ans=min(),表示...

Cassie_zkq的博客 420

56、宇宙微波背景辐射(CMB)望远镜及光学系统解析

本文详细解析了宇宙微波背景辐射(CMB)望远镜及其光学系统,重点介绍了交叉德拉贡系统的结构特点、偏振测量误差及其控制、以及大型地面望远镜如ACT和SPT的设计与对比。同时,总结了不同光学系统和探测器阵列的优劣势,并展望了未来发展方向,旨在为CMB研究提供更高效的工具和技术支持。

f9g0h的博客 244

CodeForces 1114C. Trailing Loves (or L'oeufs?)【数论】

Aki is fond of numbers, especially those with trailing zeros. For example, the number 92009200 has two trailing zeros. Aki thinks the more trailing zero digits a number has, the prettier it is. Howev...

独钓门前月 1044

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C. Trailing Loves (or L‘oeufs?)(思维+(1~n)或n!质因子分解)

https://codeforces.com/problemset/problem/1114/C 题意:求 n转化为 b 进制下末尾有多少个 0. 思路: 一个数在b进制的末尾有多少个0呢.从b的大次幂往小次幂看哪次能整除,那么有多少个0。 怎么理解呢?一个数对于p进制的一位能整除,实际上就是该位,比如该位p^4,那么该位上的数就是x/(p^4),数超过了p就往前进位。 比如: 100010(2) = 34(10) = 2 × 17是二的一次方的倍数 1100(2) = 12(10) = 4 ×

代码笔记本 215

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

求n!在m进制下末尾0的个数

参考: CF#538 C - Trailing Loves (or L'oeufs?) /// 分解质因数 n的阶乘在m进制下末尾有多少零 简单的讲解: 求n!在10进制下末尾0的个数,由于2*5=10,(2,5是质数)所以就是求n!里有几个min(2的个数,5的个数),由于2的个数远大于5的个数,所以我们只找有几个5就行了,比如计算25!的末尾0的个数,25!中包含5的有5,10,15,...

沉默的大多数 2169

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

CF538div2-C-Trailing Loves (or L'oeufs?)-数论

题目传送门 题意: 给你n&lt;=1e18,k&lt;=1e12,求n!(n的阶乘)转化为k进制后,有多少个后导0. 思路: 问题转化为求n%(k^r) == 0的r的最大值。 由于自己叙述太麻烦,就将官方题解贴出来。 The problem can be reduced to the following: finding the maximum r that n ! is divisible ...

我们花时间收集,却忘了最重要的其实是花时间去消化 847

STM32与LTE Cat 1bis模块LEXI-R10401D开发指南

LTE Cat 1bis作为物联网中低速率通信的主流技术,在功耗与成本之间实现了最佳平衡。其核心原理基于3GPP Release 13标准,通过简化射频架构降低硬件复杂度,同时保持10Mbps下行速率满足大多数IoT场景需求。在工程实践中,与STM32系列MCU的搭配尤为常见,开发者需要掌握USART硬件流控、AT指令状态机等关键技术。本文以LEXI-R10401D模块为例,详细解析其在美洲市场的频段适配、PSM低功耗模式配置等实战经验,特别针对STM32F410RB主控的电平匹配问题提供了解决方案。

diaomeijiao3430的博客 419

【CodeForces - 1114C】Trailing Loves (or L'oeufs?) (数论)

The number "zero" is called "love" (or "l'oeuf" to be precise, literally means "egg" in French), for example when denoting the zero score in a game of tennis. Aki is fond of numbers, especially those...

__似水流年__的博客 390

Codeforces 1114C Trailing Loves (or L'oeufs?)

题目链接:http://codeforces.com/problemset/problem/1114/C 算是一个比较经典的数论题目,有一定的数论基础的话是不难想出来这个题目的做法的 题意: 求n的阶乘在b进制下末尾有多少个零 题解: 要完成这个题目,需要用到数论里的唯一分解定理; 唯一分解定理说的是任何一个大于一的正整数,都可以被分解为若干素数的乘积,而且形式唯一。 对于这个题目,我们通过进制的...

森世 369

C. Trailing Loves (or L'oeufs?)

题目链接:http://codeforces.com/contest/1114/problem/C 题面:    题目描述:求n的阶乘用b进制表示后,有多少个后导零。  解题思路:将b进行质因数分解为p1^x1*p2^x2*p3^x3.....后,再将n的阶乘质因数分解为p1^y1*p2^y2*p3^y3.....,答案就是 min(yi/xi);求阶乘中某一个质因子的数目有一个高效...

weixin_41755781的博客 251

C. Trailing Loves (or L'oeufs?) (质因数分解)

C. Trailing Loves (or L'oeufs?) 题目传送门 题意: 求n!在b进制下末尾有多少个0? 思路: 类比与5!在10进制下末尾0的个数是看2和5的个数,那么 原题就是看b进行质因数分解后,每个因数个数的最小值 代码: #include<bits/stdc++.h> using namespace std; typedef ...

weixin_30687587的博客 155

(CodeForces) C. Trailing Loves (or L'oeufs?)

视频题解戳我 传送门 题目大意:求n!在b进制下末尾有多少个0. 解题思路:n!可以化成  ;k就代表了末尾0的个数,x不是b的倍数,即他的末尾不是0,每乘一个b相当于左移一位多一个0(就像2进制那样,都是一样的)。所以就是求n!总有多少个b,求出b的质因子,求出所有质因子在n!中的  个数/每一组b所需这个质因子个数  最少的那个( 质因子会重复,组成一个b可能需要多个相同的t ),那就是...

一只不争气的蒸汽机的博客 656

Trailing Loves (or L'oeufs?)

The number "zero" is called "love" (or "l'oeuf" to be precise, literally means "egg" in French), for example when denoting the zero score in a game of tennis. Aki is fond of numbers, especially those ...

black_hole6的博客 534

codeforces 1114C Trailing Loves (or L'oeufs?) (数论)

https://codeforces.com/contest/1114/problem/C 题意 输入一个n和b。1≤n≤10181\leq n\leq 10^{18}1≤n≤1018,2≤b≤10122 \leq b \leq 10^{12}2≤b≤1012。 输出n! 在b进制下,末尾连续0的个数。 例如5 2 120 = 1111000 末尾连续0的个数为3。 题解 n!=xk∗byk+xk...

Link_Ray的博客 376
上一篇: Codeforces Round #535 (Div. 3) E2. Array and Segments (Hard version) 【区间更新 线段树】
下一篇: CF#538(div2) B. Yet Another Array Partitioning Task 【YY】
莜莫oO
博客等级 码龄9年 7粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值