阶乘约数【蓝桥杯国赛】
问题描述
定义阶乘 n! = 1 × 2 × 3 × ··· × n。
请问 100! (100 的阶乘)有多少个约数。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
思路:
1.
理解题意,什么是约数,就是能被整数的数比如,6的约数1,2,3,6,10约数1,2,5,10。
2.
知晓定理:
任意一个正整数 X 都可以表示成若干个质数乘积的形式,即 X = p1α1 ∗ p2α2 …… ∗ pkαk
约数个数 = (a1 + 1)(a2 + 1)……(ak + 1)
例如:10的的质数乘积=2*5 ,约数个数=(1+1)*(1+1)=4;如上所说1 2 5 10
180的数乘积=22335,约数个数=(2+1)*(2+1)*(1+1)=18。约数为
1 2 3 4 5 6 9 10 12 15 18 20 30 36 45 60 90 180 。
a1,a2,a3就是分解质因数出现的个数(幂数),180分解后=2^2 + 3^2 + 5^1。
3.
阶乘中约数,就是阶乘中所有数质因数分解后,质因数的出现的次数(幂数)+1相乘。
代码思路:
1.分解质因数:一个数i的质因数,j从2到i,与i/j==0则是约数,i=i/j,将已经分解的数去除比如8/2=4,4/2=2,2是最后一个,最后得出8=2*2*2。
2.将分解质因数出现次数存放在一个数组中,循环将他们次数+1,然后相乘即可。
代码实现:
public class Main {public static void main(String[] args) {//存储每个数分解完后,出现的次数(幂数)int arr[] = new int[101];//记录结果long sum=1;for (int i = 2; i <= 100; i++) {//将每个数分解质因数,即将这个数分为质数乘积组成的形式,记录分解的数出现次数。int j = 2, i1 = i;while (i1 != j) {if (i1 % j == 0) {arr[j]++;i1 = i1 / j;} else {j++;}}//最后i1==j就是分解到最后一个质数,将这个质数记录arr[j]++;}//根据公式,约数个数=(a1+1)*(a2+1)*(an+1)...a就是质因数出现次数(幂数)for(int i=2;i<=100;i++) {if(arr[i]!=0) sum*=(arr[i]+1);}//输出结果System.out.println(sum);}
}
阶乘约数【蓝桥杯国赛】相关推荐
- 阶乘约数-蓝桥杯国赛java
阶乘约数 题目:100!(100)的阶乘中有多少个正约数. 分析: 这算是一道数学题吧,不做推导. 100!数目相对来说比较大,我使用180这个数来分析. 第一步:找出180以内的所有质数,(1不是质 ...
- 第十二届蓝桥杯国赛真题+题解 Python
文章目录 写在前面 试题A:带宽 试题 B: 纯质数 试题C: 完全日期 试题D: 最小权值 试题 E: 大写 试题 F: 123 试题 G: 冰山 试题 H: 和与乘积 试题 I: 二进制问题 试题 ...
- 蓝桥杯国赛 C/C++ ABC组题解(第四届 ~ 第十二届)
2020年第十一届蓝桥杯国赛 题号 类型 C++ A组 C++ B组 C++ C组 试题A 结果填空 合数个数 美丽的 2 美丽的 2 试题B 结果填空 含 2 天数 (日期处理) 扩散 (BFS) ...
- 2020十一届蓝桥杯国赛二等奖Java B组
大家觉得写还可以,可以点赞.收藏.关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录 参考博客https://blo ...
- 蓝桥杯国赛C++A组B组题解整理(第八、七、六、五、四届)
[写在前面的话19.04.04] 今年省赛的结果出的意外得快,有很多小伙伴来和我分享他们进了省一的喜悦,并问我啥时候更新国赛题解,emmm--不是我不想更新,实在是抽不出时间,有缘再更--虽然不更新题 ...
- 蓝桥杯国赛知识点汇总
蓝桥杯国赛备赛总结知识点,以老师给的为原型,添加自己理解,供大家参考,后期不定时更新. 基础 1.熟练掌握API1.8常用方法 2.大数(高精度)加减乘除 3.并查集 模板: public class ...
- 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑
题目链接 Ideas 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑 Code Python if __name__ == '__main__':n = int(input( ...
- 2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数
2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数 在线评测 Ideas 对于一个纯循环小数,假设循环节为l,则小数为0.llll-,转换为分数就是 l / (10 ** n ...
- 蓝桥杯评分标准_新闻 | 人工智能学院创新创业实践中心开展蓝桥杯国赛经验分享会...
为让各位蓝桥杯国赛选手以饱满精力迎接接下来的比赛,天津科技大学人工智能学院创新创业实践中心邀请到计算机科学与技术专业教研室主任吴江红老师为各位蓝桥杯国赛选手分享经验,提高选手们的应试应赛能力. 吴江红 ...
- 第十一届蓝桥杯国赛题目
以下是第十一届蓝桥杯国赛题目,供大家学习参考(提取码失效可以评论我) 百度云: 链接: https://pan.baidu.com/s/1g1o-px-RUVoXLLhRDS8cXQ 提取码: fgf ...
最新文章
- 在 Linux 中用Seahorse管理你的密码和加密密钥
- 大雁蛋人工孵化的方法_大鹅繁殖有哪些方法,您了解吗?
- C++ 和 Java,你选哪个? | 每日趣闻
- 免费下载田志刚《呼叫中心知识库心得》电子书
- Web游戏开发编程:最神奇的“触觉振动”
- java一元二次方程面向对象,求解一元二次方程(面向对象设计的),跪求
- Unix domain socket 简介(进程间通信,进程通信)
- linux编译ffmpeg.exe,linux下编译FFmpeg
- free、vmstat监视内存使用情况
- ROS的学习(十二)用C++写一个简单的发布者
- java日常日志打印模板
- 智能控制在计算机领域的应用,智能控制的主要应用领域
- ES 经纬度距离 php,php 根据两点的经纬度计算距离
- 专门查英语单词的软件_查英语单词的工具
- python求n的倍数_求n以下所有数字的总和,这些数字是某些数字的倍数
- MFC控件响应鼠标中键OnMouseWheel
- springboot整合webservice接口以及碰到的问题
- 没有什么软文是营销圈拯救不了的?
- lwIP 细节之三:TCP 回调函数是何时调用的
- 给 perl hacker 们看的(ReShip)
热门文章
- 美国宣布进入国家紧急状态!
- Flutter开发之Http网络请求
- 新手教程:建立网站的全套流程与详细解释
- c语言中do是什么用法,C语言基础知识:do while用法理解
- Unity2D学习笔记Day14:靠近门时弹出对话框并播放录制动画
- python 剪刀石头布游戏设计
- 梦幻西游进入游戏显示服务器程序停止工作,win10系统提示“梦幻西游已停止工作”的设置教程...
- NSPredicate模糊、精确、查询
- 印第安人的捕梦网 Dreamcatcher 与音乐——排箫
- 大多数人没听过的FreeEIM飞鸽传书,超炫酷的仿QQ,九零后都爱玩