序号:953
Time Limit:1s Memory Limit:512MB
[绍兴2011]木材加工
题目描述:
2049年,智能机器人在各行各业中的应用已经十分普遍了,小明的运输队里就有一个,是专门用来装卸货物的。 这天,他们的任务是要把 N(2 <= N <= 50 )根木材运送到家具厂去。这些木材长短不同(有些还特别的长),为了便于运输,只好把它们切割成小段。所以,小明给机器人的任务是:把这些木材切割并装上卡车。等机器人做完这事的时候,小明一看结果,大吃一惊:原来装在车上的所有小段的木材,居然长度都是一样的(以米为单位),而且,还是所有可行方案中,切割次数最少的那种方案! 如果告诉你最开始那N根木材的长度,你能算出机器人切割出的小段的长度吗?
输入格式:
第一行有一个整数N,表示原始木材的数量。第二行中是N个用空格分开的整数,表示每根木材的长度(以米为单位),已知这些整数不小于1,不超过400000。
输出格式:
只有一个整数,表示机器人切割出来的每个小段的长度。
输入样例:
4
4 22 8 12
输出样例:
2
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a[10005],min_len,flag;
cin>>n;
min_len=INT_MAX;
for(int i=1;i<=n;i++){
cin>>a[i];
min_len=min(min_len,a[i]);
}
for(int i=min_len;i>=1;i--){
flag=1;
for(int j=1;j<=n;j++){
if(a[j]%i!=0){
flag=0;
break;
}
}
if(flag==1){
cout<<i;
break;
}
}
return 0;
}