当前位置: 首页 > news >正文

勒让德公式(Legendre 公式)

参考链接:https://oi.wiki/math/number-theory/factorial/#legendre-公式


在正整数 \(n!\) 的质因数分解中,质数 \(p\) 的指数(即 \(n!\) 能被 \(p\) 整除的最高次数,记为 \(v_p(n!)\))可以通过以下公式计算:

\[v_p(n!) = \sum_{k=1}^{\infty} \left\lfloor \frac{n}{p^k} \right\rfloor \]

其中 \(\lfloor x \rfloor\) 表示向下取整(不超过 \(x\) 的最大整数)。因为当 \(p^k > n\) 时各项均为 0,所以这是一个有限项求和。

变体(进制表达)

Legendre 公式还可以写作

\[v_p(n!) = \frac{n - S_p(n)}{p - 1} \]

其中 \(S_p(n)\) 是将 \(n\) 写成 \(p\) 进制时各位数字的和。

经典应用

常用于计算“\(100!\) 的末尾有几个零”(实际是求 \(v_5(100!)\) 的值)。

例题:洛谷P10495 阶乘分解

题目链接

示例程序(包含了上述两种 Legendre公式 的实现):

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int maxn = 1e6 + 5;bool isp[maxn];
vector<int> primes;void init(int n) {for (int i = 2; i <= n; i++) {if (!isp[i]) {primes.push_back(i);}for (auto &j : primes) {if (i * j > n) break;isp[i * j] = true;if (i % j == 0) break;}}
}int n;int legendre_1(int n, int p) {int res = 0;for (ll t = p; t <= n; t *= p)res += n / t;return res;
}int s(int n, int p) {int res = 0;for (; n; n /= p)res += n % p;return res;
}int legendre_2(int n, int p) {return (n - s(n, p)) / (p - 1);
}int main() {scanf("%d", &n);init(n);for (auto &p : primes) {int ans = legendre_1(n, p);assert(ans == legendre_2(n, p));printf("%d %d\n", p, ans);}return 0;
}
http://www.zskr.cn/news/1327809.html

相关文章:

  • 别再只调FOV了!Unity URP相机从Base到Overlay的完整实战指南(含2021+版本避坑)
  • 在Ubuntu 20.04上搞定Quartus Prime Lite 20.1和ModelSim:一份详细的依赖库避坑指南
  • 自然语言处理进阶:用BERT实现文本相似度计算
  • Vue3组合式API进阶:深入理解和高效使用Composition API
  • 深入了解Linux命名空间的cgroups:打开容器技术的黑匣子
  • 从热敏到针式:手把手教你为89S52单片机选型并驱动微型打印机(附避坑指南)
  • 别再死记1:10了!手把手教你实测FOC电流环带宽(附Python扫频脚本)
  • 思源宋体TTF:如何用开源字体解决中文排版三大技术难题
  • Linux 的 uniq 命令
  • Halcon实战:用投影变换搞定倾斜标定板图像校正(附完整代码)
  • 2026淮南装修公司推荐榜:口碑排名前五,选对不踩坑 - 速递信息
  • 2026邛崃市本地人必选的瓷砖空鼓专业维修公司TOP5推荐!卫生间空鼓翘边,厨房空鼓翘边,客厅空鼓翘边,全天响应,免费上门,5月专业瓷砖空鼓修复公司持证上岗师傅排名最新深度调研方案) - 一修哥修缮
  • 手把手教你用Vivado配置Xilinx SEM IP 3.1:从IP Catalog到Tera Term串口调试全流程
  • 杨立昆转推“Meta AI 已死”:一场大厂AI战略的自杀式摇摆
  • 深入YOLOv8损失函数:为什么自带的Focal Loss会报错?一次完整的源码调试与修复记录
  • 从零到部署:在Linux服务器上用Python搭建并调用WPS地理处理服务
  • 2026年淮安婚纱摄影店排行榜:金帝皇后婚纱摄影,综合实力与口碑最优选 - 华Sir1
  • 别再手动写C了!用Simulink S-Function Builder快速封装你的算法(2017a版保姆级教程)
  • 2026年景区智能检票设备制造商深度测评:如何为你的景区匹配最佳方案? - 速递信息
  • ppt模板_0033_圣诞主题2
  • STM32F103C8T6与XL3485芯片实战:手把手教你搞定RS485通信的硬件连接与调试(附完整代码)
  • ppt模板_0034_圣诞主题3
  • 精通Socket.IO重连:深度定制化与复杂场景下的稳定连接之道
  • 告别充电焦虑!用FS4066系列芯片DIY一个支持USB PD快充的2-4串锂电池充电器(附完整电路图)
  • 5分钟免费搭建Sunshine游戏串流:让全家共享游戏乐趣的终极指南
  • 49本紫微斗数电子书合集
  • 别再折腾了!用Anaconda虚拟环境5分钟搞定pyhanlp(Python 3.8 + JPype1 0.7.0)
  • 从‘压高光’到‘提暗部’:深入聊聊手机相机AE里的Histogram Stretch到底在干嘛
  • 避坑指南:OpenCV人脸识别项目整合MySQL时,你可能会遇到的5个数据存储难题
  • 避坑!用ArcGIS计算格网内耕地比例时,90%的人会忽略的数据连接问题