3054 - PrimeXXL

From Bitnami MediaWiki
Revision as of 16:04, 3 January 2024 by Codrut Borcutean (talk | contribs) (Pagină nouă: == Cerinţa == Se dă un număr natural '''n'''. Să se afișeze '''DA''' dacă numărul este prim altfel se afișează '''NU'''. == Date de intrare == Fișierul de intrare '''primexxlin.txt''' conține pe prima linie numărul '''n'''. == Date de ieșire == Fișierul de ieșire '''primexxlout.txt''' va conține pe prima linie '''DA''' sau '''NU''' după caz. == Restricţii şi precizări == * '''1 ≤ nrcif(n) ≤ 1000''' == Exemplu 1 == ; primexxlin.txt 5 ; primexxlout.txt...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa[edit | edit source]

Se dă un număr natural n. Să se afișeze DA dacă numărul este prim altfel se afișează NU.

Date de intrare[edit | edit source]

Fișierul de intrare primexxlin.txt conține pe prima linie numărul n.

Date de ieșire[edit | edit source]

Fișierul de ieșire primexxlout.txt va conține pe prima linie DA sau NU după caz.

Restricţii şi precizări[edit | edit source]

  • 1 ≤ nrcif(n) ≤ 1000

Exemplu 1[edit | edit source]

primexxlin.txt
5
primexxlout.txt
Datele de intrare corespund restrictiilor impuse
DA


Exemplu 2[edit | edit source]

primexxlin.txt
10000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001
primexxlout.txt
Datele de intrare nu corespund restrictiilor impuse


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def is_prime(n):

   # Funcția verifică dacă un număr este prim.
   if n < 2:
       return False
   if n == 2:
       return True
   if n % 2 == 0:
       return False
   p = 3
   while p * p <= n:
       if n % p == 0:
           return False
       p += 2
   return True


def main():

   with open('primexxlin.txt', 'r') as fin, open('primexxlout.txt', 'w') as fout:
       n = int(fin.readline().strip())
       # Verificăm dacă numărul respectă restricțiile
       if len(str(n)) > 1000:
           fout.write("Datele de intrare nu corespund restrictiilor impuse\n")
           return
       fout.write("Datele de intrare corespund restrictiilor impuse\n")
       # Verificăm dacă numărul este prim și scriem rezultatul în fișierul de ieșire
       fout.write('DA\n' if is_prime(n) else 'NU\n')


if __name__ == "__main__":

   main()


</syntaxhighlight>