0908 - AfisareNumerePrime: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerință== Scrieți definiția completă a funcției Python '''afisare''' care primește doi parametri '''a''' și '''b''' și afișează pe ecran, în ordine crescătoare, numerele naturale prime cuprinse între '''a''' și '''b''', inclusiv acestea. ==Restricții de precizări== *numele funcției va fi '''afisare''' *funcția va avea exact doi parametri: '''a''', respectiv '''b''' *'''0 < a , b <= 1000''' *numerele vor fi afișate pe aceeași linie, separate prin câ...
 
No edit summary
Line 2: Line 2:


Scrieți definiția completă a funcției Python '''afisare''' care primește doi parametri '''a''' și '''b''' și afișează pe ecran, în ordine crescătoare, numerele naturale prime cuprinse între '''a''' și '''b''', inclusiv acestea.
Scrieți definiția completă a funcției Python '''afisare''' care primește doi parametri '''a''' și '''b''' și afișează pe ecran, în ordine crescătoare, numerele naturale prime cuprinse între '''a''' și '''b''', inclusiv acestea.
==Date de intrare== 
*Doi parametri întregi '''a și b''', unde '''0 < a, b <= 1000'''.
==Date de ieșire==
*Nici o valoare de returnare. Funcția va afișa, pe o singură linie, numerele naturale prime cuprinse între '''a''' și''' b''', în ordine crescătoare, separate prin câte un spațiu.




Line 27: Line 36:
===Rezolvare ver. 1===
===Rezolvare ver. 1===
<syntaxhighlight lang="python" line="1" start="1">
<syntaxhighlight lang="python" line="1" start="1">
def este_prim(n):
    """Verifică dacă un număr dat este prim"""
    if n < 2:
        return False
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True


def afisare(a, b):
def afisare(a, b):
     # declaram o lista goala pentru a stoca numerele prime gasite
     """Afișează numerele prime cuprinse între a și b"""
    primes = []
     for n in range(a, b+1):
   
         if este_prim(n):
    # iteram prin toate numerele de la a la b inclusiv
             print(n, end=' ')
     for num in range(a, b+1):
    print()  # trecem pe o noua linie
        # verificam daca numarul este mai mare decat 1
 
         if num > 1:
def validare(a, b):
             is_prime = True
    """Verifică dacă a și b sunt în intervalul specificat"""
            # verificam daca numarul este prim
    if a <= 0 or b <= 0 or a > 1000 or b > 1000:
            for i in range(2, int(num ** 0.5) + 1):
        return False
                if num % i == 0:
     return True
                    is_prime = False
                    break
            # daca numarul este prim, il adaugam la lista de numere prime
            if is_prime:
                primes.append(num)
      
    # afisam lista de numere prime folosind argumentul special * pentru a afisa fiecare element din lista separat prin spatiu
    print(*primes)


if __name__ == '__main__':
def main():
    # citim valorile pentru a si b de la tastatura
     a = int(input("Introduceti valoarea pentru a: "))
     a = int(input("Introduceti valoarea pentru a: "))
     b = int(input("Introduceti valoarea pentru b: "))
     b = int(input("Introduceti valoarea pentru b: "))
      
     if validare(a, b):
    # verificam daca valorile pentru a si b sunt valide (intre 1 si 1000)
         afisare(a, b)
    if a <= 0 or b <= 0 or a > 1000 or b > 1000:
         print("a si b trebuie sa fie numere intre 1 si 1000")
     else:
     else:
         # apelam functia afisare cu valorile a si b
         print("Valorile introduse nu sunt valide. A și b trebuie să fie între 1 și 1000.")
        afisare(a, b)
 
if __name__ == '__main__':
    main()




</syntaxhighlight>
</syntaxhighlight>
==Explicatii==
Acest cod definește o funcție afisare care primește doi parametri întregi a și b și afișează numerele prime cuprinse între a și b, inclusiv acestea, pe o singură linie, separate prin câte un spațiu. Pentru a verifica dacă un număr este prim, este definită și o funcție separată este_prim.
Pentru a preveni erori, a fost definită o funcție suplimentară validare care verifică dacă valorile introduse pentru a și b sunt în intervalul specificat (1 ≤ a, b ≤ 1000).
În funcția main, utilizatorul este întâi întrebat să introducă valorile pentru a și b. Dacă valorile sunt valide, funcția afisare este apelată pentru a afișa numerele prime. Altfel, un mesaj de eroare este afișat pentru a informa utilizatorul că valorile introduse nu sunt valide.

Revision as of 17:08, 30 April 2023

Cerință

Scrieți definiția completă a funcției Python afisare care primește doi parametri a și b și afișează pe ecran, în ordine crescătoare, numerele naturale prime cuprinse între a și b, inclusiv acestea.

Date de intrare

  • Doi parametri întregi a și b, unde 0 < a, b <= 1000.

Date de ieșire

  • Nici o valoare de returnare. Funcția va afișa, pe o singură linie, numerele naturale prime cuprinse între a și b, în ordine crescătoare, separate prin câte un spațiu.



Restricții de precizări

  • numele funcției va fi afisare
  • funcția va avea exact doi parametri: a, respectiv b
  • 0 < a , b <= 1000
  • numerele vor fi afișate pe aceeași linie, separate prin câte un spațiu


Exemplu

Dacă a=7 și b=2, apelul subprogramului va afișa pe ecran:

2 3 5 7


Important

Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.


Rezolvare

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1">

def este_prim(n):

   """Verifică dacă un număr dat este prim"""
   if n < 2:
       return False
   for i in range(2, int(n**0.5)+1):
       if n % i == 0:
           return False
   return True

def afisare(a, b):

   """Afișează numerele prime cuprinse între a și b"""
   for n in range(a, b+1):
       if este_prim(n):
           print(n, end=' ')
   print()  # trecem pe o noua linie

def validare(a, b):

   """Verifică dacă a și b sunt în intervalul specificat"""
   if a <= 0 or b <= 0 or a > 1000 or b > 1000:
       return False
   return True

def main():

   a = int(input("Introduceti valoarea pentru a: "))
   b = int(input("Introduceti valoarea pentru b: "))
   if validare(a, b):
       afisare(a, b)
   else:
       print("Valorile introduse nu sunt valide. A și b trebuie să fie între 1 și 1000.")

if __name__ == '__main__':

   main()


</syntaxhighlight>

Explicatii

Acest cod definește o funcție afisare care primește doi parametri întregi a și b și afișează numerele prime cuprinse între a și b, inclusiv acestea, pe o singură linie, separate prin câte un spațiu. Pentru a verifica dacă un număr este prim, este definită și o funcție separată este_prim.

Pentru a preveni erori, a fost definită o funcție suplimentară validare care verifică dacă valorile introduse pentru a și b sunt în intervalul specificat (1 ≤ a, b ≤ 1000).

În funcția main, utilizatorul este întâi întrebat să introducă valorile pentru a și b. Dacă valorile sunt valide, funcția afisare este apelată pentru a afișa numerele prime. Altfel, un mesaj de eroare este afișat pentru a informa utilizatorul că valorile introduse nu sunt valide.