3303 - Nr Curat: Difference between revisions
Pop Giulia (talk | contribs) Pagină nouă: ==Cerința== Se dau cel mult 1000 numere naturale mai mici decât 100.000.000. Să se stabilească despre fiecare număr dacă este sau nu curat. ==Date de intrare== Fișierul de intrare nrcurat.in conține pe prima linie cel mult 1000 numere naturale mai mici decât 100.000.000, separate prin spații. ==Date de ieșire== Fișierul de ieșire nrcurat.out va conține pe prima linie pentru fiecare număr x din fișierul de intrare valoarea 1 dacă x este curat sau 0 în caz c... |
Pop Giulia (talk | contribs) |
||
Line 24: | Line 24: | ||
==Rezolvare== | ==Rezolvare== | ||
</syntaxhighlight> | |||
with open('nrcurat.in', 'r') as f_in, open('nrcurat.out', 'w') as f_out: | with open('nrcurat.in', 'r') as f_in, open('nrcurat.out', 'w') as f_out: | ||
# citim numerele din fisierul de intrare | # citim numerele din fisierul de intrare | ||
Line 39: | Line 40: | ||
# scriem rezultatul in fisierul de iesire | # scriem rezultatul in fisierul de iesire | ||
f_out.write('1 ' if clean else '0 ') | f_out.write('1 ' if clean else '0 ') | ||
</syntaxhighlight> |
Revision as of 09:48, 30 April 2023
Cerința
Se dau cel mult 1000 numere naturale mai mici decât 100.000.000. Să se stabilească despre fiecare număr dacă este sau nu curat.
Date de intrare
Fișierul de intrare nrcurat.in conține pe prima linie cel mult 1000 numere naturale mai mici decât 100.000.000, separate prin spații.
Date de ieșire
Fișierul de ieșire nrcurat.out va conține pe prima linie pentru fiecare număr x din fișierul de intrare valoarea 1 dacă x este curat sau 0 în caz contrar. Valorile sunt separate prin câte un spațiu.
Restricții și precizări
în fișier sunt cel mult 1000 de numere naturale mai mici decât 100.000.000
Exemplu
- nrcurat.in
- 345 18 53 986310 467 1638
- nrcurat.out
- 0 1 0 1 0 1
Explicație
Numerele 18, 986310 și 1638 sunt numere curate.
Rezolvare
</syntaxhighlight> with open('nrcurat.in', 'r') as f_in, open('nrcurat.out', 'w') as f_out:
# citim numerele din fisierul de intrare numbers = list(map(int, f_in.readline().strip().split())) # parcurgem fiecare numar for n in numbers: clean = True # parcurgem fiecare cifra a numarului for digit in str(n): if digit == '0': continue if n % int(digit) != 0: clean = False break # scriem rezultatul in fisierul de iesire f_out.write('1 ' if clean else '0 ')
</syntaxhighlight>