0996 - Div 3
De la Universitas MediaWiki
Cerință
Pe prima linie a fişierului div3.in se află numărul n, iar pe a doua linie n numere naturale.
Date de intrare
Pe prima linie a fişierului div3.in se află numărul n, iar pe a doua linie n numere naturale.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." Pe prima linie a fişierului div3.out se vor afla elementele şirului dat pentru care suma cifrelor este divizibilă cu 3, separate printr-un spațiu. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
Restricții de precizări
- 1 ⩽ n ⩽ 1000
- elementele şirului vor avea cel mult 9 cifre
Exemplul 1
- Intrare
- 7
- 124 51 231 7 24 31 5
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 51 231 24
Exemplul 2
- Intrare
- 5
- 124 51 abc 7 24
- Ieșire
- Datele introduse nu corespund restricțiilor impuse.
Rezolvare ver. 1
def validare(n, numere):
# Verifica daca datele de intrare sunt valide conform cerintei problemei.
# Verifica daca n este un numar intreg pozitiv
# si daca toate numerele din lista numere sunt numere intregi pozitive.
return n.isdigit() and all(x.isdigit() for x in numere) and 1 <= int(n) <= 1000
def suma_cifre(n, numere):
# Calculeaza suma cifrelor pentru fiecare numar din lista numere,
# si retine doar numerele pentru care suma cifrelor este divizibila cu 3.
suma_div3 = []
for x in numere:
if sum(int(d) for d in str(x)) % 3 == 0:
suma_div3.append(x)
return suma_div3
if __name__ == "__main__":
with open("div3.in", "r") as fin:
n = fin.readline().strip() # Citeste numarul de elemente din sir
numere = fin.readline().strip().split() # Citeste lista de numere
if validare(n, numere):
n = int(n) # Converteste n la integer
numere = list(map(int, numere)) # Converteste lista de numere la integers
print("Datele introduse corespund restricțiilor impuse.")
suma_div3 = suma_cifre(n, numere) # Calculeaza suma_div3
with open("div3.out", "w") as fout:
fout.write(" ".join(map(str, suma_div3))) # Scrie numerele in fisierul de iesire
fout.write("\n")
else:
print("Datele introduse nu corespund restricțiilor impuse.")