#include <bits/stdc++.h>
#define bug cout << "***************" << endl
#define fuck(x) cout << #x << " -> " << x << endl
#define rep(i, num, e) for (int i = (num); i <= (e); i++)
#define dep(i, num, e) for (int i = (num); i >= (e); i--)
#define endl '\n'
#define int long long
using namespace std;
constexpr int N = 1e6 + 10, inf = 0x3f3f3f3f;
int a[N];
int n;
bool check(int x)
{
for (int i = 2; i <= n; i++)
{
if ((a[i] - a[1]) % x != 0)
{
return false;
}
}
return true;
}
int serchhigh(int r)
{
for (int i = r;i >= 1;i--) {
if (check(i)) {
return i;
}
}
return -1;
}
void solve()
{
cin >> n;
int minn = inf;
for (int i = 1; i <= n; i++)
{
cin >> a[i];
}
sort(a + 1, a + n + 1);
for(int i=2;i<=n;i++)
{
minn = min(minn, abs(a[i] - a[i - 1]));
}
int d = serchhigh(minn);
//cout << ans << endl;
if (d==-1) {//常数列
cout << n;
}
else {
int ans = (a[n] - a[1]) / d + 1;
cout << ans << endl;
}
}
signed main()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int T = 1;
while (T--)
{
solve();
}
return 0;
}
蓝桥杯等差数列
最新推荐文章于 2025-05-21 12:04:25 发布