0375 - Urmatorul Prim
Cerinţa
Se dă numărul natural n. Să se determine cel mai mic număr prim, strict mai mare decât n.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieşire
Programul afișează pe ecran numărul cerut.
Restricții și precizări
- n ∈ Ν
- 1 ⩽ n ⩽ 1.000.000.000
Exemplu1
- Intrare
- 20
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 23
Exemplu2
- Intrare
- 112
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 127
Rezolvare
<syntaxhighlight lang="python" line> def validare_date(n):
flag = False if 0 < int(n) < 1_000_000_000: flag = True return flag
def verif_prim(n):
if n <= 1: return False else: for i in range(2, int(n ** 0.5) + 1): if n % i == 0: return False else: return True
def urmatorul_prim(n):
i = n + 1 while not verif_prim(i): i += 1 print(i)
if __name__ == '__main__':
n = int(input()) if validare_date(n): print("\nDatele de intrare corespund restrictiilor impuse.\n") urmatorul_prim(n) else: print("Datele de intrare nu corespund restrictiilor impuse.")
</syntaxhighlight>
Explicație
Programul primește un număr întreg de la utilizator. Dacă numărul este valid, programul calculează următorul număr prim după numărul dat.
Funcția verif_prim primește un număr întreg n și returnează True dacă n este prim și False altfel. Verifică dacă n este mai mare sau egal cu 2 și dacă există un divizor între 2 și rădăcina pătrată a lui n.
Funcția urmatorul_prim primește un număr întreg n și găsește următorul număr prim după n. Folosește un buclă while pentru a găsi următorul număr prim începând cu n+1. Când găsește un număr prim, îl afișează și se oprește.