3303 - Nr Curat: Difference between revisions

From Bitnami MediaWiki
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)
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
Sursa: [https://www.pbinfo.ro/probleme/3303/nrcurat]
==Cerința==
==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.
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.
Line 24: Line 27:


==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line>
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 43:
         # 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>

Latest revision as of 12:37, 20 May 2023

Sursa: [1]


Cerința[edit]

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]

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]

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]

în fișier sunt cel mult 1000 de numere naturale mai mici decât 100.000.000

Exemplu[edit]

nrcurat.in
345 18 53 986310 467 1638
nrcurat.out
0 1 0 1 0 1

Explicație[edit]

Numerele 18, 986310 și 1638 sunt numere curate.

Rezolvare[edit]

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