266
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
n
numere 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