0434 - Perechi Prime: Difference between revisions
Paul Matei (talk | contribs) Pagină nouă: == 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 pe... |
Paul Matei (talk | contribs) No edit summary |
||
Line 59: | Line 59: | ||
main() | main() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicație rezolvare== | |||
Acest cod este un program Python care își propune să găsească primele '''n''' perechi de numere naturale impare consecutive prime. | |||
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 '''is_prime''' 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_consecutive_primes''' 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_consecutive_primes''' 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.''' |
Revision as of 11:11, 6 April 2023
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
- 3 5
- 5 7
- 11 13
- 17 19
- 29 31
Rezolvare
<syntaxhighlight lang="python" line> import math
def validare_date(numar):
flag = False if numar.isdigit(): if 0 <= int(numar) <= 100: flag = True return flag
def is_prime(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_consecutive_primes(n):
count = 0 numar = 3 while count < n: if is_prime(numar) and is_prime(numar+2): print(numar, numar+2) count += 1 numar += 2
def 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_consecutive_primes(n) else: print("Datele de intrare nu corespund restricțiilor impuse.")
if __name__ == '__main__':
main()
</syntaxhighlight>
Explicație rezolvare
Acest cod este un program Python care își propune să găsească primele n perechi de numere naturale impare consecutive prime.
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 is_prime 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_consecutive_primes 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_consecutive_primes 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.