0908 - AfisareNumerePrime

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

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

Se citesc de la tastatură doi parametri întregi a și b, unde 0 < a, b <= 1000.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." 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. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse.".

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

Intrare
7
2
Ieșire
Datele de intrare corespund restrictiilor impuse.
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

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"""
    if a >= b:
        a, b = b, a
    for n in range(a, b + 1):
        if este_prim(n):
            print(n, end=' ')


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


if __name__ == '__main__':
    a = input("Introduceti valoarea pentru a: ")
    b = input("Introduceti valoarea pentru b: ")
    if validare(a, b):
        a, b = int(a), int(b)
        print("Datele de intrare corespund restrictiilor impuse.")
        afisare(a, b)
    else:
        print("Datele de intrare nu corespund restrictiilor impuse.")

Explicații

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.