这里先提前介绍一下题目所说的Legendre定理

在正数n!的素因子标准分解式中,素数p的最高指数记为,则

这里简单的解释一下这个Legendre定理。

我们知道每一个正实数都可以分解成如下的形式:表示一个指数,w表示这个质数的指数)

什么意思呢,比如一个数12,就可以把它分解成

那么同理,我们就可以看成这个数,根据Legendre定理,我们枚举每一个从小到大直到n的质数,之后新的变量k从1开始依次加1,直到,指数每次都加。那么p的最高指数就是这些相加,具体的实现请看代码。

题目

问题 K(2318): 因子和阶乘

时间限制: 1 Sec  内存限制: 128 MB

题目描述

输入正整数N(2 <= N <= 100),把阶乘N!= 1 * 2 * 3 * ... * N分解成质因子相乘的形式,从小到大输出各个质因子(2, 3, 5, ...)的指数。例如825 = 3 * 5^2 * 11,应表示成(0, 1, 2, 0, 1),表示分别有0个2,1个3,2个5,0个7,1个11。

你的程序应该忽略比最大质因子更大的质数,否则输出项的末尾会有无穷多个0。

输入

第1行:一个正整数N

输出

第1行:若干个整数,之间用一个空格分开,表示N!的各个质因子的指数

样例输入

样例1:
5
样例2:
53

样例输出

样例1:
3 1 1
样例2:
49 23 12 8 4 4 3 2 2 1 1 1 1 1 1 1

看完题目后我们就发现,这道题其实就是完全运用 Legendre定理,不用任何优化。所以我们只需用编程语音写出来就行。

代码

#include <bits/stdc++.h> using namespace std;#define LL long long
#define M 100010
#define N 500010
#define MOD 1234567
#define mem(a,n) memset(a,n,sizeof(a))LL read() {LL f=1,s=0;char a=getchar();while(a<'0' || a>'9') { if(a=='-') f=-1; a=getchar(); }while(a>='0' && a<='9') { s=s*10+a-'0'; a=getchar(); }return f*s;
}LL n=read(),ps[1001],cnt;LL is_prime (LL n) {//判断是否为质数for(LL i=2;i*i<=n;i++)if(n%i==0)return 0;return 1;
}LL qkpow(LL a,LL b)//快速幂,快速求出a^b
{LL ans=1,y=a;while(b>0){if(b&1){ans=ans*a;}a=a*a;b>>=1;}return ans;
}int main() {for(int i=2;i<=n;i++)//ps数组是每个质数的指数if(is_prime(i)) {cnt++;for(int k=1;qkpow(i,k)<=n;k++)ps[cnt]+=n/qkpow(i,k);}cout<<ps[1];for(int i=2;i<=cnt;i++)cout<<' '<<ps[i];
}

C++数论之Legendre定理的运用:因子和阶乘相关推荐

  1. 数论一之定理证明——裴蜀/威尔逊/费马/扩展欧几里得/[扩展]欧拉/[扩展]中国剩余定理,欧拉函数,逆元,剩余系,筛法

    打死没想到会在H老师处学懂数论 同余,整除 模运算 埃式筛法 欧拉筛法 最大公约数和最小公倍数 辗转相除法 更相减损术 裴蜀定理 威尔逊定理 费马定理 同余等价类.剩余系.缩系 欧拉函数 欧拉定理 扩 ...

  2. 数论 --- 约数和定理公式推导、最大公约数、欧几里得算法

    试除法求约数 和<试除法判断一个数是不是质数>是一个道理 从小到大枚举所有的约数,如果当前数能整除这个数的话,说明这个数就是当前数的约数 优化,与<试除法判断质数>是一样的 如 ...

  3. bzoj 2257[Jsoi2009]瓶子和燃料 数论/裴蜀定理

    题目 Description jyy就一直想着尽快回地球,可惜他飞船的燃料不够了. 有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子来换.jyy 的飞船上共有 N个瓶子(1< ...

  4. 网络安全-数论入门-孙子定理(CRT)

    1. 简介 孙子定理是中国古代求解一次同余式组(见同余)的方法.是数论中一个重要定理.又称中国余数定理.一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作<孙子算经>卷 ...

  5. 【数论】勒让德定理(笔记)

    勒让德定理是用来求n!的素因子分解的一个定理,表述为: 记素数p的指数为Lp, Lp(n!)=∑[n/pk] (k>=1) .维基百科有详细的证明 一个要用到该定理的问题:uvalive 582 ...

  6. poj 1006 java_POJ 1006 Biorhythms 数论-(孙子定理)

    这是一道变形的孙子定理的题目,直接用公式. 代码如下: #include #include #include #include #include #include #include #include ...

  7. 数学--数论--容斥定理完全解析(转)

    对容斥原理的描述 容斥原理是一种重要的组合数学方法,可以让你求解任意大小的集合,或者计算复合事件的概率. 描述 容斥原理可以描述如下: 要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来, ...

  8. 『数学』--数论--组合数+卢卡斯定理+扩展卢卡斯定理

    组合数: 在N个数中选取M个数,问选的方式有几种? 直接递归暴力简单 #include<cstdio> const int N = 2000 + 5; const int MOD = (i ...

  9. 数论——中国剩余定理

    中国剩余定理(西方数学史中的叫法) 设m1,m2...mk是两两互素的正整数,即: gcd(mi, mj) = 1 (其中 i != j, i, j >= 1且 <=k). 则同余方程组: ...

最新文章

  1. php标题 栏目不显示title,DEDECMS专题列表页不显示title的解决方法
  2. SLAM学习--2D激光SLAM-圣经-概率机器人学各种扩展
  3. Eclipse配置CAS client
  4. oracle 11g rman catalog,Oracle 11g RMAN复制数据库的测试
  5. First集、Follow集
  6. thinkphp html里使用c u,原来C可以这么用 Thinkphp C
  7. Python训练文本情感分析模型
  8. rgb sw 线主板接口在哪_旋转RGB制作指导
  9. 从Zachman企业架构框架想到的
  10. Send函数和Recv函数解析
  11. mysql 索引失效情况总结
  12. InfoPath 2007表单应用
  13. 如何搭建云进销存-销售管理系统?
  14. 大数据的分布式数据库技术的对比
  15. LibreCAD for windows 编译
  16. MySQL教程-01
  17. VS2015使用WTL库的ribbon风格界面的注意事项
  18. 矩阵快速幂 51nod
  19. 中山大学计算机在职研究生分数线,中山大学在职研究生的考试分数线是多少?...
  20. Jenkins结合Gitee(码云)自动化部署Springboot项目(比较详细)

热门文章

  1. 小游戏之天选之人:通过幸运数字生成双色球号码(随机函数的应用)
  2. android新特性:使用CollapsingToolbarLayout实现折叠效果及问题解决
  3. ISO认证证书上常见的认可标志
  4. 数据挖掘(python实现)—认识数据
  5. Python+Vue计算机毕业设计童童摄影馆管理系统yyt8p(源码+程序+LW+部署)
  6. EDU教育邮箱有这么多学生福利,你确定不搞一个?
  7. 基于飞桨图像分类套件PaddleClas的柠檬分类竞赛实战
  8. 华为鸿蒙HarmonyOS,华为鸿蒙HarmonyOS 2.0
  9. 阿里大促,「技术负责人」如何做技术保障?
  10. 详细讲解Linux内核源码内存管理(值得收藏)