2646 - impartire
Cerința
Se dau n
numere naturale, unde n
este un număr par. Se grupează cele n
numere în perechi şi pentru fiecare pereche de numere se află restul împărţirii unui număr din pereche la celălalt. Se cere să se afle valoarea minimă a sumei acestor resturi.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi cele n
numere naturale, separate prin spații.
Date de ieșire
Programul va afișa pe ecran suma minimă a resturilor. În cazul în care restricțiile nu sunt îndeplinite, se va afișa mesajul "Nu corespunde restricțiilor".
Restricții și precizări
2 ≤ n ≤ 18
- cele
n
numere citite vor fi mai mici decât1.000
Exemplul 1
Intrare
4 6 5 3 4
Ieșire
1
Exemplul 2
Intrare
20
consola
Nu corespunde restricțiilor.
Rezolvare
<syntaxhighlight lang="python3" line="1"> def citeste_numar_intre_limite(mesaj, limita_inferioara, limita_superioara):
while True: try: valoare = int(input(mesaj)) if limita_inferioara <= valoare <= limita_superioara: return valoare else: print("Nu corespunde restricțiilor.") except ValueError: print("Nu corespunde restricțiilor.")
- Citirea numărului de elemente
n = citeste_numar_intre_limite("Introduceti numarul de elemente (n): ", 2, 18)
- Inițializarea listei pentru stocarea numerelor
numere = []
- Citirea elementelor și adăugarea lor în listă
for i in range(n):
numar = citeste_numar_intre_limite(f"Introduceti numarul {i + 1}: ", 0, 999) numere.append(numar)
- Calculul sumei minime a resturilor
suma_minima = 0 for i in range(0, n, 2):
if numere[i] < numere[i + 1]: rest = numere[i] % numere[i + 1] elif numere[i] > numere[i + 1]: rest = numere[i + 1] % numere[i] else: print("Nu corespunde restricțiilor.") exit(1) suma_minima += rest
- Afișarea rezultatului
print(f"Suma minima a resturilor este: {suma_minima}")
</syntaxhighlight>