0434 - Perechi Prime: Diferență între versiuni
Fără descriere a modificării |
|||
(Nu s-au afișat 5 versiuni intermediare efectuate de același utilizator) | |||
Linia 12: | Linia 12: | ||
: 5 | : 5 | ||
; Ieșire | ; Ieșire | ||
: Datele de intrare corespund restricțiilor impuse. | |||
: 3 5 | : 3 5 | ||
: 5 7 | : 5 7 | ||
Linia 29: | Linia 30: | ||
return flag | return flag | ||
def | def prim(numar): | ||
if numar < 2: | if numar < 2: | ||
return False | return False | ||
Linia 37: | Linia 38: | ||
return True | return True | ||
def | def print_prime_consecutive(n): | ||
count = 0 | count = 0 | ||
numar = 3 | numar = 3 | ||
while count < n: | while count < n: | ||
if | if prim(numar) and prim(numar+2): | ||
print(numar, numar+2) | print(numar, numar+2) | ||
count += 1 | count += 1 | ||
numar += 2 | numar += 2 | ||
if __name__ == '__main__': | |||
numar = input("Introduceți numărul n: ") | numar = input("Introduceți numărul n: ") | ||
if validare_date(numar): | if validare_date(numar): | ||
Linia 52: | Linia 53: | ||
print("\nDatele de intrare corespund restricțiilor impuse.\n") | print("\nDatele de intrare corespund restricțiilor impuse.\n") | ||
print("Primele", n, "perechi de numere naturale impare consecutive prime sunt:") | print("Primele", n, "perechi de numere naturale impare consecutive prime sunt:") | ||
print_prime_consecutive(n) | |||
else: | else: | ||
print("Datele de intrare nu corespund restricțiilor impuse.") | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicație rezolvare== | ==Explicație rezolvare== | ||
Funcția '''validare_date''' primește un număr sub formă de șir de caractere și returnează o valoare booleană, '''True''' dacă numărul este un număr natural între '''0 și 100''', inclusiv, altfel returnează '''False'''. | Funcția '''validare_date''' primește un număr sub formă de șir de caractere și returnează o valoare booleană, '''True''' dacă numărul este un număr natural între '''0 și 100''', inclusiv, altfel returnează '''False'''. | ||
Funcția ''' | Funcția '''prim''' primește un număr și returnează o valoare booleană, '''True''' dacă numărul este prim, altfel returnează '''False'''. Funcția utilizează o buclă for care verifică dacă numărul este divizibil cu orice număr între 2 și rădăcina pătrată a numărului dat, iar dacă este, returnează '''False'''. | ||
Funcția ''' | Funcția '''print_prime_consecutive''' primește un număr întreg '''n''' și afișează primele n perechi de numere naturale impare consecutive prime. Funcția începe cu numărul 3 și, utilizând o buclă '''while''', verifică dacă numerele sunt prime și consecutive impare și le afișează în caz afirmativ. Dacă găsește o pereche, crește numărul de perechi găsite '''(count)''' cu 1 și trece la următorul număr. | ||
Funcția '''main''' începe prin a cere utilizatorului să introducă un număr întreg '''n''' și apoi verifică dacă acesta este valid utilizând funcția '''validare_date'''. Dacă numărul este valid, afișează mesajul '''Datele de intrare corespund restricțiilor impuse.''' și apoi utilizează funcția ''' | Funcția '''main''' începe prin a cere utilizatorului să introducă un număr întreg '''n''' și apoi verifică dacă acesta este valid utilizând funcția '''validare_date'''. Dacă numărul este valid, afișează mesajul '''Datele de intrare corespund restricțiilor impuse.''' și apoi utilizează funcția '''print_prime_consecutive''' pentru a afișa primele '''n''' perechi de numere naturale impare consecutive prime. Dacă numărul nu este valid, afișează mesajul '''Datele de intrare nu corespund restricțiilor impuse.''' |
Versiunea curentă din 25 aprilie 2023 09:41
Cerinţa
Se dă un număr natural n. Afișați primele n perechi de numere naturale impare consecutive prime.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieşire
Programul afișează pe ecran n primele perechi de numere naturale impare consecutive prime, câte o pereche pe linie, numerele dintr-o pereche fiind separate printr-un spațiu.
Restricții și precizări
- 1 ≤ n ≤ 100
- pentru fiecare pereche p q afișată, p < q
Exemplu
- Intrare
- 5
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 3 5
- 5 7
- 11 13
- 17 19
- 29 31
Rezolvare
import math
def validare_date(numar):
flag = False
if numar.isdigit():
if 0 <= int(numar) <= 100:
flag = True
return flag
def prim(numar):
if numar < 2:
return False
for i in range(2, int(math.sqrt(numar))+1):
if numar % i == 0:
return False
return True
def print_prime_consecutive(n):
count = 0
numar = 3
while count < n:
if prim(numar) and prim(numar+2):
print(numar, numar+2)
count += 1
numar += 2
if __name__ == '__main__':
numar = input("Introduceți numărul n: ")
if validare_date(numar):
n = int(numar)
print("\nDatele de intrare corespund restricțiilor impuse.\n")
print("Primele", n, "perechi de numere naturale impare consecutive prime sunt:")
print_prime_consecutive(n)
else:
print("Datele de intrare nu corespund restricțiilor impuse.")
Explicație rezolvare
Funcția validare_date primește un număr sub formă de șir de caractere și returnează o valoare booleană, True dacă numărul este un număr natural între 0 și 100, inclusiv, altfel returnează False.
Funcția prim primește un număr și returnează o valoare booleană, True dacă numărul este prim, altfel returnează False. Funcția utilizează o buclă for care verifică dacă numărul este divizibil cu orice număr între 2 și rădăcina pătrată a numărului dat, iar dacă este, returnează False.
Funcția print_prime_consecutive primește un număr întreg n și afișează primele n perechi de numere naturale impare consecutive prime. Funcția începe cu numărul 3 și, utilizând o buclă while, verifică dacă numerele sunt prime și consecutive impare și le afișează în caz afirmativ. Dacă găsește o pereche, crește numărul de perechi găsite (count) cu 1 și trece la următorul număr.
Funcția main începe prin a cere utilizatorului să introducă un număr întreg n și apoi verifică dacă acesta este valid utilizând funcția validare_date. Dacă numărul este valid, afișează mesajul Datele de intrare corespund restricțiilor impuse. și apoi utilizează funcția print_prime_consecutive pentru a afișa primele n perechi de numere naturale impare consecutive prime. Dacă numărul nu este valid, afișează mesajul Datele de intrare nu corespund restricțiilor impuse.