小藍有一個超大的倉庫,可以擺放很多貨物。
現在,小藍有 n 箱貨物要擺放在倉庫,每箱貨物都是規則的正方體。小藍規定了長、寬、高三個互相垂直的方向,每箱貨物的邊都必須嚴格平行于長、寬、高。
小藍希望所有的貨物最終擺成一個大的長方體。即在長、寬、高的方向上分別堆 L、W、H 的貨物,滿足 n=L×W×H。
給定 n,請問有多少種堆放貨物的方案滿足要求。
例如,當 n=4 時,有以下 6種方案:1×1×4、1×2×2、1×4×1、2×1×2、2×2×1、4×1×1
請問,當 n=2021041820210418 (注意有 16 位數字)時,總共有多少種方案?
提示:建議使用計算機編程解決問題。
#include <stdio.h>
int main ()
{long long n=2021041820210418, i, j, count = 0,a[3000], cnt = 0;//找出所有因子放進數組for(int i = 1; i <= sqrt(n); i++){if(n % i == 0){a[++cnt] = i;printf("ys1:%lld ",a[cnt]);if(i*i != n) {a[++cnt] = n/i;printf("ys2:%lld ",a[cnt]);}}}for (i = 1; i <= cnt; i++) {if (n%a[i]==0) {printf("x%lld:%lld\n ",i,a[i]);for (j = 1; j <= cnt; j++) {if ((n/a[i])%a[j]==0) {printf("y%lld:%lld ",j,n/a[j]);count++;}}}}printf("\n總個數為%lld",count);
}```