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
nnumere 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>