Nombres primers

Desa les funcion següents al mòdul primers (fitxer primers.py).

  1. Dissenya la funció següent:

    primers.es_primer(n)

    Determina si un nombre és primer

    Paràmetres:

    n (int) – nombre natural

    Tipus de retorn:

    bool

    Retorna:

    True si n és primer o False en cas contrari.

    Per exemple:

    >>> es_primer(1)
    False
    >>> es_primer(2)
    True
    >>> es_primer(53)
    True
    >>> es_primer(63)
    False
    

    Pots descarregar el fitxer amb tests es_primer.txt

  2. Dissenya la funció es_primer_iteracions() que, donat un nombre enter, retorni True si és primer o False en cas contrari. Aquesta funció ha d’incorporar i retonar un comptador d’iteracions. Desa aquesta funció al fitxer primers.py. Exemples:

    >>> es_primer_iteracions(1)
    (False, 0)
    >>> es_primer_iteracions(2)
    (True, 0)
    >>> es_primer_iteracions(53)
    (True, 51)
    >>> es_primer_iteracions(63)
    (False, 2)
    

    Nota

    Pots descarregar el fitxer amb tests es_primer_iteracions.txt

  3. Dissenya una versió millorada de la funció anterior, es_primer_iteracions_millorada(). Compara el nombre d’iteracions d’aquesta versió millorada amb el de la versió no millorada. Desa aquesta funció al fitxer primers.py. Exemples:

    >>> es_primer_iteracions_millorada(1)
    (False, 0)
    >>> es_primer_iteracions_millorada(2)
    (True, 0)
    >>> es_primer_iteracions_millorada(53)
    (True, 3)
    >>> es_primer_iteracions_millorada(63)
    (False, 1)
    

    Nota

    Pots descarregar el fitxer amb tests es_primer_iteracions_millorada.txt

Solució

Disposes de solucions al fitxer primers.py.