农夫约翰有 N ( 1 ≤ N ≤ 5000 ) N(1 \le N \le 5000) N(1≤N≤5000)头奶牛,每头奶牛都有一个唯一的不同于其它奶牛的编号 s i s_i si,所有的奶牛都睡在一个有 K K K个厩的谷仓中,厩的编号为 0 0 0到 K − 1 K-1 K−1。每头奶牛都知道自己该睡在哪一个厩中,因为约翰教会了它们做除法, S i m o d K S_i \bmod K SimodK的值就是第 i i i头奶年所睡的厩的编号。
给出一组奶牛的编号,确定最小的K使得没有二头或二头以上的奶牛睡在同一厩中。
第一行一个正整数 N N N,第 2 2 2到 N + 1 N+1 N+1行每行一个整数表示一头奶牛的编号。
一个整数,表示要求的最小的 K K K,对所有的测试数据这样的 K K K是一定存在的。
5
4
6
9
10
13
8
S i ( 1 ≤ S i ≤ 1000000 ) S_i(1\le S_i \le 1000000) Si(1≤Si≤1000000)
#include
#define LL long long
using namespace std;
const int maxn = 1e6 + 10;
const int mod = 1e9 + 7;
const int INF = 1e9 + 10;
const int N = 1000000;
int n;
int a[N];
int b[N];
int main(){
cin >> n;
for(int i = 1;i <= n;i ++)
cin >> a[i];
int res = 0;
for(int i = 1;i <= n;i ++){
for(int j = i + 1;j <= n;j ++ ){
b[abs(a[i] - a[j])] = 1;
}
}
for(int i = 1;i <= N;i ++){
bool flag = 1;
for(int j = i;j <= N;j += i){
if(b[j] == 1){
flag = 0;
break;
}
}
if(flag){
cout << i << endl;
break;
}
}
system("pause");
return 0;
}