ĐỀ BÀI :
Mỗi lần bị kẹt trên đường vì tắc đường, An thường nghĩ ra trò chơi để giải trí. Một trong những trò chơi đó là An đọc N số từ các biển số xe và tìm số nguyên M (M>1) sao cho N số đã đọc đều có cùng số dư khi chia cho M. An muốn tìm được càng nhiều số M như thế càng tốt. Bạn hãy giúp An tìm tất cả các số M thoả mãn yêu cầu.
Dữ liệu: Vào từ file GAME.INP
Dòng đầu tiên chứa số nguyên N (2 < N <100). N dòng tiếp theo, dòng thứ i chứa số nguyên Bi thuộc đoạn [1; 109]. Tất cả các số nguyên đôi một khác nhau. Dữ liệu vào luôn đảm bảo tồn tại ít nhất một số M thoả mãn yêu cầu.
Kết quả: Ghi ra file GAME.OUT tất cả các số M tìm được theo thứ tự tăng dần, các số ghi cách nhau ít nhất một dấu cách.
mn giúp em với em newbie 
code:
#include <bits/stdc++.h>
using namespace std;
bool kiemtra (long int a[], int n, int k)
{
int mod = a[0] % k;
for (int i=1;i<n;i++)
{
if (a[i]%k != mod);
{
break;
return false;
}
}
return true ;
}
int main()
{
long int a[10001],b[10001];
int n,m =0;
ifstream fi;
fi.open("GAME.INP");
fi >> n;
for (int i=0;i<n;i++) fi >> a[i];
sort(a,a+n);
int k =2;
while (k < a[0])
{
if (kiemtra(a,n,k)==true) {
b[m] = k;
m++;
}
k++;
}
ofstream fo("GAME.OUT");
for (int i=0;i<m;i++)
{
fo << b[i] << endl;
}
fo.close();
fi.close();
return 0;
}

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?