问题描述
定义阶乘 n! = 1 × 2 × 3 × ··· × n。
请问 100! (100 的阶乘)有多少个约数。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
取出每个因子的质数,伪代码如下:
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);}
}
上一篇:【设计模式】创建者模式
下一篇:数仓建模—主题域和主题