AC
数学+去重
代码占用的空间比较大吧,有更精简的方法
#include<bits/stdc++.h>
using namespace std;
int main( )
{
int n,a,k,b;
cin >> n ;
vector<int> arr;
vector<int> arr2;
vector<int> arr3;
vector<int> arr4;
for(int i=0;i<n;i++)
{
cin >> a;
arr.insert(arr.end(),a); //3 1 2 6
}
int max_value = *max_element(arr.begin(),arr.end());
for(int j=1;j<=max_value;j++)
{
int length = arr.size();
for(int i=0;i<length;i++)
{
k = arr[i]%j;
arr3.insert(arr3.end(),k);
}
set<int> s(arr3.begin(),arr3.end());
arr4.assign(s.begin(),s.end());
if(arr4.size() == arr3.size())
{
arr2.insert(arr2.end(),j);
}
arr4.clear();
arr3.clear();
}
int min_value = *min_element(arr2.begin(),arr2.end());
cout << min_value;
return 0;
}