题目货物摆放
方法一
由于题目给的数据很大直接使用三个 for
循环是算不出结果的。
public class Main {
public static void main(String[] args) {
long n = 2021041820210418L;
// 这里数组大小是多少都可以,只要不越界就好
long arr[] = new long[130];
int i = 0; // 记录数组下标
int count = 0; // 记录有多少种组合
for (long j = 1; j*j <= n; j++) {
if (n%j == 0) {
arr[i++] = j; // 计算出 比 n 开平方小的因数
if(j != n/j) {
arr[i++] = n/j; // 计算出 比 n开平方大的因数
}
}
}
for (int j = 1; j < i; j++) {
for (int j2 = 1; j2 < i; j2++) {
for (int k = 1; k < i; k++) {
if(arr[j]*arr[j2]*arr[k] == n)count++;
}
}
}
System.out.println(count);
}
}