题目描述
Description
中山每年为全市中小学生兴办一次运动大会。为促进各校同学之间的交流,采用特别的分队方式:每一个学校的同学,必须被均匀分散到各队,使得每一队中该校的人数都相同。为增加比赛的竞争性,希望分成越多队越好。你的任务是根据各校的人数,决定最多可分成的队数。
输入
Input
输入文件第一行为一个正整数N,代表学校的个数。接下来有N行,每行为一个正整数,分别代表这N个学校的人数。
输出
Output
输出最多可分成的队数。
样例输入
3121620
样例输出
4
提示
样例解释:
输入样例中有3个学校,人数分别为12、16、20,因为12=4×3,16=4×4,20=4×5,所以最多可以分成4个队,3个学校在每个队中的人数分别为3人、4人、5人。
数据说明:
学校数不超过500,每个学校人数最多为10000。
#include<iostream>
using namespace std;
int main()
{
int n,i,j,min=10009,f;
int a[500];
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i];
if(a[i]<min)
min=a[i];
}
for(i=min;i>0;i--)
{
f=0;
for(j=0;j<n;j++)
if(a[j]%i==0)
f++;
if(f==n)
{
cout<<i<<endl;
break;
}
}
return 0;
}