1345 - K Prim
Cerinţa[edit | edit source]
Să se scrie un program care citește un număr natural k și afișează cel mai mic număr natural n mai mare decât 1, care nu este divizibil cu primele k numere prime și nu este prim. Fișierul de intrare kprim.in conține pe prima linie numărul k.
Date de ieşire[edit | edit source]
Fișierul de ieșire kprim.out va conține pe prima linie numărul n, reprezentând cel mai mic număr natural n,care nu este divizibil cu primele k numere prime și nu este prim.
Restricții și precizări[edit | edit source]
- 1 ≤ k ≤ 10000
Exemplu[edit | edit source]
- kprim.in
- 3
- kprim.out
- 49
Explicație[edit | edit source]
Primele 3 numere prime sunt 2, 3, 5. Numerele care nu sunt divizibile cu 2, 3 sau 5 sunt : 7, 11, 13, 17, 19, 23, 31, 37, 41, 47, 49, … 49 este cel mai mic număr care nu este prim
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> import math
def validare_date(n):
if isinstance(n, int) and n > 0: return True return False
def prim(n):
if n == 0 or n == 1: return False if n == 2: return True if n % 2 == 0: return False for i in range(3, int(math.sqrt(n))+1, 2): if n % i == 0: return False return True
if __name__ == '__main__':
n = int(input("Introduceti un numar natural: ")) if validare_date(n): if n == 1: print(9) else: x = 3 while n > 0: if prim(x): r = x n -= 1 x += 1 p = r * r print(p) else: print("\nDatele de intrare nu corespund restrictiilor impuse.")
</syntaxhighlight>
Explicație rezolvare[edit | edit source]
Acest program calculează pătratul celui de-al n-lea număr prim, unde n este un număr natural citit de la tastatură. Înainte de a începe calculele, programul verifică dacă datele de intrare sunt valide, adică dacă n este un număr natural pozitiv. Dacă datele sunt invalide, programul va afișa un mesaj corespunzător. Dacă datele sunt valide și n este egal cu 1, programul va afișa numărul 9. În caz contrar, programul va căuta cel de-al n-lea număr prim și va calcula pătratul acestuia, folosind o funcție care verifică dacă un număr dat este prim. Rezultatul este apoi afișat la ecran.