2329 - prim007: Difference between revisions

From Bitnami MediaWiki
mNo edit summary
No edit summary
Line 36: Line 36:
== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#2329 prim007


def este_prim(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True


def prim007(n,vector):
    count = 0
    for i in range(n):
        for j in range(i+1, n):
            if este_prim(vector[i] + vector[j]):
                count += 1
    print(count)
   
def conform_restrictiilor(n,vctor):
    if not 2 <= n <= 100000:
        print("Datele nu sunt conform restricțiilor impuse.")
        return False
    for x in vector:
        if x > 10000:
            print("Datele nu sunt conform restricțiilor impuse.")
            return False
    print("Datele sunt corecte.")
    return True
       
if __name__ == '__main__':
    n = int(input())
    vector = list(map(int, input().split()))
    if conform_restrictiilor(n,vector) is True:
        prim007(n,vector)


</syntaxhighlight>
</syntaxhighlight>


==Explicaţie cod==
==Explicaţie cod==

Revision as of 17:50, 19 April 2023

Sursa: - prim007


Cerinţa

Se dă un șir a1, a2, …, an format din n numere naturale. Determinați numărul de perechi de elemente din șir (ai,aj) cu i < j, care au suma număr prim.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.", iar apoi va afișa pe ecran numărul rezultatelor care sunt numere prime. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.".

Restricţii şi precizări

  • 2 ≤ n ≤ 100.000
  • elementele șirului vor fi mai mici decât 10.000

Exemple

Exemplul 1

Intrare
3
2 5 9
Ieșire
Datele sunt corecte.
2

Exemplul 2

Intrare
5
16 7 90 19 82
Ieșire
Datele sunt corecte.

Exemplul 3

Intrare
2
314515341535441 412351541241
Ieșire
Datele nu sunt comform restricțiilor impuse.


Rezolvare

<syntaxhighlight lang="python" line>

  1. 2329 prim007

def este_prim(n):

   if n < 2:
       return False
   for i in range(2, int(n ** 0.5) + 1):
       if n % i == 0:
           return False
   return True


def prim007(n,vector):

   count = 0
   for i in range(n):
       for j in range(i+1, n):
           if este_prim(vector[i] + vector[j]):
               count += 1
   print(count)
   

def conform_restrictiilor(n,vctor):

   if not 2 <= n <= 100000:
       print("Datele nu sunt conform restricțiilor impuse.")
       return False
   for x in vector:
       if x > 10000:
           print("Datele nu sunt conform restricțiilor impuse.")
           return False
   print("Datele sunt corecte.")
   return True
       

if __name__ == '__main__':

   n = int(input())
   vector = list(map(int, input().split()))
   if conform_restrictiilor(n,vector) is True:
       prim007(n,vector)

</syntaxhighlight>

Explicaţie cod