3303 - Nr Curat
Sursa: [1]
Cerința[edit | edit source]
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[edit | edit source]
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[edit | edit source]
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[edit | edit source]
în fișier sunt cel mult 1000 de numere naturale mai mici decât 100.000.000
Exemplu[edit | edit source]
- nrcurat.in
- 345 18 53 986310 467 1638
- nrcurat.out
- 0 1 0 1 0 1
Explicație[edit | edit source]
Numerele 18, 986310 și 1638 sunt numere curate.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> 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>