【阶乘约数】
其实,这个算一个数有多少个正约数有公式的sum=(p1+1)(p2+1)(p3+1)…(pn+1)。这里的p1,p2,p3…指的是约数的个数,如有多少个2,多少个3,这样子。例如12=223,所有sum=(2+1)(1+1)=6,所有12也就是有6个约数,(1,2, 3, 4, 6, 12)。
代码如下,谢谢各位看官。
```java
public class Main {
public static void main(String[] args) {
int ans=1;
Long sum=1L; //注意,有可能超出,所有不能有int保存
int[] nums = new int[101];
for(int i=1;i<=100;i++) {
ans = ans*i;
int temp = ans;
for(int j=2;j<=temp;j++) {
while (ans%j==0) {
nums[j]++;
ans = ans/j;
}
}
}
for(int i=1;i<nums.length;i++) {
if(nums[i]!=0) {
sum = sum*(nums[i]+1);
}
}
System.out.println(sum);
}
}