1573 - Verif Progresie
De la Universitas MediaWiki
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ât 2.000.000.000;
Exemplul 1
- Intrare
- 6
- 2 10 12 16 20 18
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- DA
Exemplul 2
- Intrare
- 0
- 0
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
#1573 - Verif Progresie
def progresie_aritmetica(numere): # definim o functie ce cauta o progresie progresie_aritmetica
# formata din trei elemente intr-o lista de numere
n = len(numere)
if n < 3:
return None
for i in range(n):
for j in range(i+1, n):
for k in range(j+1, n):
if numere[i] + numere[k] == 2 * numere[j]:
return [numere[i], numere[j], numere[k]]
return None
if __name__ == "__main__":
n = int(input("Introduceți numărul de valori: ")) # citim numărul de valori și lista de numere
# de la tastatură
numere = list(map(int, input("Introduceți valorile, separate prin spațiu: ").split()))
if n < 1 or n > 2500 or max(numere) > 2000000000: # verificarea restrictiilor
print("Datele de intrare nu corespund restricțiilor impuse.")
if progresie_aritmetica(numere): # apelam functia progresie_aritmetica si afisam DA daca
# exista o progresie aritmetica si NU in caz contrar
print("NU")
else:
print("Datele de intrare corespund restricțiilor impuse.")
print("DA")