第十一届蓝桥杯(决赛)之阶乘约数
创始人
2025-05-28 14:39:08
0

第十一届蓝桥杯(决赛)之阶乘约数


题目

问题描述

定义阶乘 n! = 1 × 2 × 3 × ··· × n。

请问 100! (100 的阶乘)有多少个约数。

答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。



解析:

一、前置知识

  • 任何一个正整数 X 都可以表示成若干个质数乘积的形式,即X=p1a1×p2a2×...×pnanX = p_1^{a1}\times p_2^{a2}\times...\times p_n^{an}X=p1a1​×p2a2​×...×pnan​
  • 那么约数个数=(a1+1)×(a2+1)×...×(an+1)(a_1+1)\times(a_2+1)\times...\times(a_n+1)(a1​+1)×(a2​+1)×...×(an​+1)

二、代码

取出每个因子的质数,伪代码如下:

while(...){for(...){number%i==0;//}
}

​ 因为每个正整数是由若干个质数乘积,所以不用判断被除数 i 是不是质数。这是因为如果i不是质数,那么它一定是由比它小的质数的乘积组成的,而在循环到 i 之前就已经除尽了那些质数,所以当前number肯定不是i的整倍,也就不用判断。

完整代码:

public class ExaminationC {public static void sumOfFactor(int[] p,int n){for (int i = 2; i <= 100; i++) {int m = i;for (int j = 2; m!=1; j++) {while (m % j == 0) {p[j]++;m/=j;}}}}public static void main(String[] args) {int n = 100;int[] p = new int[n];long result = 1l;sumOfFactor(p,n);for (int i = 0; i <100 ; i++) {result*=(p[i]+1);}System.out.println(result);}
}

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
ChatGPT 怎么用最新详细... ChatGPT 以其强大的信息整合和对话能力惊艳了全球,在自然语言处理上面表现出了惊人...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...