0498 - NumararePIE

De la Universitas MediaWiki

Sursa: - NumararePIE


Cerinţe

Se dă un vector cu n numere naturale. Să se determine câte dintre perechile de elemente din vector sunt prime între ele.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii, reprezentând elementele vectorului.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează pe ecran numărul C, reprezentând valoarea cerută. În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".

Restricţii şi precizări

  • 1 ⩽ n ⩽ 200
  • elementele vectorului vor fi cuprinse între 0 și 1000

Exemple

Exemplul 1

Intrare
6
51 18 15 28 77 121
Ieșire
Datele sunt introduse corect.
9

Explicație exemplul 1

Perechile de elemente prime între ele sunt:
51 28
51 77
51 121
18 77
18 121
15 28
15 77
15 121
28 121

Exemplul 2

Intrare
5
10 2 -3 4 5
Ieșire
Datele nu corespund restricțiilor impuse.


Rezolvare

# 0498

def verificare_prime_intre_ele(nr1, nr2):
    while nr2 != 0:
        a = nr1 % nr2
        nr1 = nr2
        nr2 = a
    return nr1


def numarare_perechi_elem_prime_intre_ele(vector, n):
    C = 0
    for i in range(n):
        for j in range(i + 1, n):
            if verificare_prime_intre_ele(vector[i], vector[j]) == 1:
                C += 1
    print(C)


def citire_conform_restrictiilor():
    n = int(input())
    if n < 1 or n > 200:
        print("Datele nu corespund restricțiilor impuse.")
        exit()
    vector = list(map(int, input().split()))
    for x in vector:
        if x < 0 or x > 1000:
            print("Datele nu corespund restricțiilor impuse.")
            exit()
    if n != len(vector):
        print("Datele nu corespund restricțiilor impuse.")
        exit()
    print("Datele sunt introduse corect.")
    return vector, n


if __name__ == '__main__':
    vector, n = citire_conform_restrictiilor()
    numarare_perechi_elem_prime_intre_ele(vector, n)