货物摆放
题目
题目要求
1.n=L×W×H
2.本题的结果为一个整数。
3.当 n = 4n=4 时,有以下 66种方案:1×1×4、1×2×2、1×4×1、2×1×2、2 × 2 × 1、4 × 1 × 1。由此,我们可以知道L、W、H为n的因子
思路分析
1.由于n过大,所以使用long long int进行声明。
2.先求出n的所有因数,将其储存于数组中。
方法一:可以先把n拆分为两个因子,再将其中一个因子再次拆分为两个因子。
方法二:可以直接求三个因子,符合三因子乘积为n的可进行sum++。
3.当三个因子的乘积为n时,sum+1。
4.使用for循环进行把因数输入到数组中,再使用for循环,判断是否可以使sum++。
代码
#include<stdio.h> int main() { long long int n=2021041820210418; long long int i,j=0; long long int s[1000]; long long int c; int sum=0; for(i=1;i<=n/i;i++) { if(n%i==0)//判断是否为整数 { s[j++]=i; c=n/i; if(c!=i) s[j++]=c; } } for(int a=0;a<j;a++) { for(int b=0;b<j;b++) { for(int d=0;d<j;d++) { long long int trmp1=s[a]*s[b]; if(trmp1*s[d]==n) sum++; } } } printf("%d",sum); return 0; }