2107 - Pomi
Enunţ[edit | edit source]
În livada sa, Vasile are pomi fructiferi, organizaţi în parcele în funcţie de soi. În fiecare an, scoate la vânzare doar o parte dintre pomii adulţi dintr-o singură parcelă. Ca să asigure spaţiu de dezvoltare pentru pomii rămaşi, Vasile s-a decis să fie scoşi la vînzare numai acei pomi din parcelă al căror număr de ordine este divizibil cu o cifră k, numită cifra anului.
Cerința[edit | edit source]
Cunoscând valorile a şi b, reprezentând numerele de ordine ale primului, respectiv ultimului pom din parcela din care se face vânzarea, precum şi k – cifra anului, se cere să se determine numărul de pomi scoşi la vânzare de Vasile în acest an.
Date de intrare[edit | edit source]
Fişierul de intrare pomi.in conţine trei numere naturale a, b, k, fiecare pe câte o linie, ce reprezintă: numerele de ordine ale primului, respectiv ultimului pom din parcela din care se face vânzarea şi cifra anului.
Date de ieșire[edit | edit source]
Fişierul de ieşire pomi.out va conţine pe prima linie, un număr natural ce reprezintă numărul de pomi scoşi la vânzare de către Vasile.
Restricții și precizări[edit | edit source]
- 1 < k ≤ 9
- 1 < a < b
- a şi b sunt numere naturale cu cel mult 80 de cifre fiecare.
Exemplul 1[edit | edit source]
- pomi.in
- 23
- 41
- 3
- pomi.out
- 6
Explicație[edit | edit source]
Sunt 6 pomi scoşi la vânzare în acest an. În cadrul parcelei, ei au avut numerele de ordine: 24, 27, 30, 33, 36, 39 (toate numerele dintre a şi b, care sunt divizibile cu cifra anului, k).
Exemplul 2[edit | edit source]
- pomi.in
- 41
- 23
- 3
- pomi.out
- Date de intrare invalide!
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 2107 Pomi
def verifica_date_intrare(a, b, k):
if not (1 < k <= 9): return False if not (1 < a < b): return False return True
def numar_pomi_scoasi_la_vanzare(a, b, k):
count = 0 for i in range(a, b + 1): if i % k == 0: count += 1 return count
def main():
# Citire date de intrare try: with open("pomi.in", "r") as fin: a = int(fin.readline().strip()) b = int(fin.readline().strip()) k = int(fin.readline().strip()) except (ValueError, FileNotFoundError): # Date de intrare invalide sau lipsa fisierului with open("pomi.out", "w") as fout: fout.write("Date de intrare invalide!") return
# Verificare date de intrare if not verifica_date_intrare(a, b, k): with open("pomi.out", "w") as fout: fout.write("Date de intrare invalide!") return
# Calcul numar de pomi scoși la vânzare numar_pomi = numar_pomi_scoasi_la_vanzare(a, b, k)
# Scriere rezultat in fisierul de ieșire with open("pomi.out", "w") as fout: fout.write(str(numar_pomi))
if __name__ == "__main__":
main()
</syntaxhighlight>