Numeri primi

factorint(), isprime(), nextprime(), prime(), primerange()

factorint()

Restituisce un dizionario con coppie (p, m)

  • p, fattore primo di n
  • m, la sua molteplicità

\displaystyle 2000 = 2^4 \cdot 5^3

>>> sp.factorint(2000)
    {2: 4, 5: 3}
>>> sp.factorint(1999)
    {1999: 1}

Con il parametro multiple=True restituisce la lista dei fattori primi ripetuti secondo la loro molteplicità

\displaystyle 2000 = 2\cdot 2\cdot 2\cdot 2\cdot 5\cdot 5\cdot 5

>>> sp.factorint(2000, multiple=True)
    [2, 2, 2, 2, 5, 5, 5]

isprime()

Restituisce True se n (intero…) è primo

>>> sp.isprime(2000)
    False
>>> sp.isprime(1999)
    True

nextprime()

Restituisce il prossimo primo dopo un certo n

20 -> 21 -> 22 -> 23

>>> sp.nextprime(20)
    23

prime()

Restituisce l’ennesimo (n >= 1) primo

>>> sp.prime(1)
    2
>>> sp.prime(10)
    29
>>> sp.prime(100)
    541
>>> sp.prime(1000)
    7919
>>> sp.prime(10000)
    104729
>>> sp.prime(10001)
    104743

primerange()

Restituisce un generatore di tutti i numeri primi compresi in un certo intervallo

  • sp.primerange(STOP) – Da 2 a STOP-1
  • sp.primerange(START, STOP) – Da START a STOP-1
>>> list(sp.primerange(20))
    [2, 3, 5, 7, 11, 13, 17, 19]
>>> list(sp.primerange(10, 20)) 
    [11, 13, 17, 19]
>>> list(sp.primerange(10000, 10100))
    [10007, 10009, 10037, 10039, 10061, 10067, 
     10069, 10079, 10091, 10093, 10099]