思路
a a+d a+2d a+3d a+4d a+5d a+6d
则只要求最大公约数 d
源码
#include<bits/stdc++.h>
using namespace std;
//a a+d a+2d a+3d a+4d a+5d a+6d
//则只要求最大公约数 d
int gcd(int a,int b){
if(b==0) return a;
else {
return gcd(b,a%b);
}
}
const int N=100010;
int a[N];
int n;
int main(){
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
int d=0;
for(int i=1;i<n;i++)
d=gcd(d,a[i]-a[0]);
if(!d){
cout<<n<<endl;
}
else {
cout<<(a[n-1]-a[0])/d+1<<endl;
}
return 0;
}