第十一届蓝桥杯(决赛)之阶乘约数
创始人
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&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...