329
Cerința
Se dau n valori naturale. Stabiliți dacă există o progresie aritmetică cu rația număr natural mai mare decât 1 din care să facă parte toate aceste valori.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.
Date de ieșire
Programul va afișa pe ecran mesajul DA , dacă există progresia aritmetică cerută, respectiv NU în caz contrar.
Restricții și precizări
1 ≤ n ≤ 2500- cele
nnumere citite vor fi mai mici decât2.000.000.000
Exemplu
Intrare
6 2 10 12 16 20 18
Ieșire
DA
Explicație
Rația este 2 , lipsesc termenii 4, 6, 8, 14.
#include <bits/stdc++.h>
using namespace std;
int cmmdc(int a , int b)
{
int r;
while(b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
int main()
{
int n , a[3001];
cin >> n;
for(int i = 1 ; i <= n ; ++i) cin >> a[i];
sort(a+1 , a+n+1);
int max = a[2]-a[1];
for(int i = 2 ; i < n ; ++i)
max=cmmdc(max,a[i+1]-a[i]);
if(max>1) cout << "DA";
else cout << "NU";
}
Comentarii