package a21蓝桥;
/**
n=a*b*c a b c 肯定都是 n的因子
首先把 n的因子全部都列出来
然后再 挨个尝试
*/
public class a04货物摆放Z {
public static void main(String[] args) {
long n=2021041820210418L;
int maxn=200;
long[] arr=new long[maxn];
int len=0;
/*
* 从1 开始循环
* i*i <a 举个例子 100的因数有 1 2 5 10 20 50 100
* 其中 只要求出 1 2 5 10 就可以 求出 20 50 100
* 这样 只求 根号下 X 之前的数 就可以了
* 然后根据 根号下X 之前的数 就可以 求出 另一半
*
*
*
* */
for (long i = 1; i*i <=n ; i++) {
if (n%i == 0) {
arr[len++]=i;
/*
* 知道一个 1 就可以得出另一个质数 100
* 另一个质数 等于 X/1
*
* 当 X的质数 正好有一个 X的平方根
* 当 10 出现后 X/ 10 还是会重复得到一个10
* 所以 当检测到 这个数是 X平方根 则直接 跳出
* 用 if 语句
*否则 就会出现
* 1 100 2 50 4 25 5 20 10 10
* 多于一个10
* */
if (i != n/i) {
arr[len++]=n/i;
}
}
}
// for (int j = 0; j <len ; j++) {
// System.out.println(arr[j]);
// }
//
// System.out.println(len);
//定义一个数 用来计数
long cnt = 0;
for (int a = 0; a <len ; a++) {
for (int b = 0; b <len ; b++) {
if (arr[a]*arr[b]>n) {
continue;
}
for (int c = 0; c <len ; c++) {
if (arr[a]*arr[b]*arr[c] == n) {
cnt++;
}
}
}
}
System.out.println(cnt);
}
}
2021年省赛试题D 货物摆放
于 2022-03-24 20:17:58 首次发布