蓝桥杯—货物摆放(C语言解法)

题目描述

查看题目

思路

  1. 先求出2021041820210418的因子,将其存储在数组中,求出一个的时候,另一个也就能知道了,当该因子为2021041820210418的平方根时,要注意,不用添加另一个因子
  2. 遍历因子数组,当三个数乘积为2021041820210418时,count加1
  3. 注意因子数组的类型一定为ll类型,int类型结果会错!!!

代码

#include<stdio.h>
long long int res[200];//!!注意类型,int型会错,ll型才行 
int cnt=0;
int count;
int main(){
	long long int num=2021041820210418;
	long long int i;
	long long int n;
	for(i=1;i<=num/i;i++){
		if(num%i==0){
			res[cnt++]=i;
			n=num/i;
			if(n!=i) res[cnt++]=n;
		}
	}
	printf("%lld\n",res[1]);
	for(int a=0;a<=cnt;a++){
		//printf(" bb ");
		for(int j=0;j<=cnt;j++){
			for(int k=0;k<=cnt;k++){
				long long int tem1=res[a]*res[j];
				if(tem1*res[k]==num)count++;
			}
		}
	}
	printf("%d",count);
	return 0;
}
posted @ 2022-03-29 21:40  两颗不一样的西柚  阅读(598)  评论(0)    收藏  举报