nefu 118 n!后面有多少个0 算数基本定理,素数分解
n!后面有多少个0 |
||
|
||
description |
||
从输入中读取一个数n,求出n! 中末尾0的个数。 |
||
input |
||
输入有若干行。第一行上有一个整数m。指明接下来的数字的个数。然后是m行,每一行包括一个确定的正整数n,1<=n<=1000000000。
|
||
output |
||
对输入行中的每个数据n,输出一行,其内容是n!中末尾0的个数。
|
||
sample_input |
||
3
3
100
1024
|
||
sample_output |
||
0
24
253
|
考查的素数基本定理的性质,素数基本定理:每一个大于1的正整数n都能被唯一地写成素数的乘积,在乘积中的素因子依照非降序排列。n=(p1^a1)*(p2^a2)*.....*(pk^ak).
n!
的素因子分解中的素数p的幂为: [n/p]+[n/p^2]+[n/p^3]+.........
再看这个题,说n!
后面有几个0。显然我们不能算出n。。所以我们得找特征。
对于随意一个正整数。若对其进行因式分解,那么其末尾的0必定能够分解成2*5,所以每个0必定和一个5相应,但同一时候还须要有2才行。而对于n!,在因式分解中,因子2的个数要比因子5的个数多,所以假设存在一个因子5,那么它必定相应着n!末尾的一个0,那么本题就变为求n!的分解中因子5的个数,那么上面的公式就派的上用场了。
代码例如以下:
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{int i,j,s,n;int cas,ans,t;scanf("%d",&cas);while(cas--){scanf("%d",&n);s=5;ans=0;t=n/5;while(t!=0){ans+=t;s*=5;t=n/s;}printf("%d\n",ans);}return 0;
}
转载于:https://www.cnblogs.com/liguangsunls/p/6751536.html
nefu 118 n!后面有多少个0 算数基本定理,素数分解相关推荐
- 数论 - 算数基本定理的运用 --- nefu 118 : n!后面有多少个0
题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemshow.php Mean: 略. analyse: 刚开始想了半天都没想出来,数据这么大,难道是有什么公 ...
- nefu 753 n!末尾有多少个0
Problem : 753 Time Limit : 1000ms Memory Limit : 65536K description 计算N!末尾有多少个0 input 输入数据有多组,每组1行,每 ...
- (5)因数分解与算数基本定理
因数分解与算数基本定理 素数是这样的整数 p ≥ 2 p\geq2 p≥2,它的(正)因数仅有1与p.不是素数的整数 m ≥ 2 m\geq2 m≥2叫做合数.例如, 素 数 2 , 3 , 5 , ...
- N的阶乘末尾有多少个0
例如:N = 5,N! = 120.末尾有1个0. 分析:想到这个问题,有人可能第一反应就是现求出N!,然后再根据求出的结果,最后得出N!的末尾有多少个0.但是转念一想,会不会溢出,等等. 其实,从& ...
- 每天一道LeetCode-----计算n的阶乘末尾有多少个0
Factorial Trailing Zeroes 原题链接Factorial Trailing Zeroes 计算n!(n的阶乘)末尾有多少个0 思路: 0实际上来源于10,而10来源于2×5,所以 ...
- 编程之美3——N!末尾有多少个0
因为n!是一个非常大的数,所以不能通过常规的方法,求出n!的值之后,再判断它的末尾有多少个0. 这里的关键就是,n!的末尾有多少个0,取决于n!中,质因数 5 的个数. 如:12!=479001600 ...
- 1*2*...*1000的末尾有多少个0?(Java实现)
/** * 算法描述: * 分解质因数,即: * 1*2*3*...*1000 = (2*5)*(2*5)*...*(2*5) *(没有匹配的2或5) //其实 ...
- 如何判断1024!末尾有多少个0
分析: 方法一:暴力法 简单的方法就是就算出1024!的值,然后判断末尾有多少个0.但是这种方法有两个非常大的缺点:第一算法效率非常低下:第二:当这个数字比较大的时候直接计算阶乘可能会导致数据溢出 ...
- 判断N!末尾有多少个0
问题:N的阶乘(N!)中的末尾有多少个0? 例如: N = 5,N! = 120.末尾有1个0. N = 10,N! = 3628800.末尾有2个0. 分析:看到这个问题,有人可能第一反应是先求出N ...
最新文章
- 甲方乙方和站在外包中间的你 | 每日趣闻
- usaco The Castle(flood fill)
- G.Fast应用将开启 中国光进铜退没白干
- 笔记本蓝牙显示输入码无效_小白笔记本连接蓝牙设备进阶篇
- 关于VC网络编程中用 char 发送结构体的说明
- 2014多校第一场A题 || HDU 4861 Couple doubi
- java io null异常_大量java.lang.InterruptedException: null异常,数据没有同步
- MapReduce源代码浅析
- NullPointerException : HiveAuthorizerImpl.checkPrivileges(HiveAuthorizerImpl.java:85)
- Shell脚本学习-阶段二十六-Web服务与端口
- Qt在VS2012中引用QtWidgets时报GLES2/gl2.h无法打开错误的解决办法
- 计算机软件实习项目四 —— 校园一卡通管理系统 (代码实现) 12-27
- 多家银行手机转账现高危漏洞 ,用户资金或被非法窃取
- 中台实践:数据中台建设五步法
- 中国移动为挽留用户!推出20元不限量套餐,你会为之买单吗
- php-fpm 重启失败,php-fpm启动失败
- 严格校验身份证,最后一位如果是X 需大写
- 前端资深技术专家苏千的“三迁”故事
- 解决Ubuntu16.04下wingide6.1无法用五笔输入中文的问题
- MapReduce最佳成绩统计,男生女生比比看
热门文章
- java语言与www技术形成性考核册_电大Java语言与WWW技术形成性考核程序题
- python【蓝桥杯vip练习题库】ALGO-189 P0505(阶乘问题)
- Python程序设计题解【蓝桥杯官网题库】 DAY5-基础练习
- ListView控件
- DB2数据库备份转成MySQL_DB2 数据库备份(集中化)
- 小程序的前端坑(持续更新)
- 网站建设前的准备工作你了解多少?
- 网站外链优化布局和新增技巧介绍!
- debain apt oracle jdk,debian安装oracle jdk
- 分子排列不同会导致_原子或分子之间的作用力是什么力?