La funzione divisors() di sympy su python
La funzione divisors() del modulo sympy mi permette di trovare tutti i divisori di un numero tramite il linguaggio Python.
divisors(n)
Il parametro n è un numero intero.
L'output della funzione è una lista dei divisori del numero intero n in ordine crescente.
Attributi facoltativi
La funzione n ha altri due attributi facoltativi
divisors(n, generator=False, proper=False)
- L'attributo generator se True crea una lista dei divisori in output non è ordinata.
- L'attributo proper se True elenca solo i divisori propri del numero. In pratica, tutti i divisori tranne il numero stesso.
Se voglio calcolare solo il numero dei divisori, senza conoscere in dettaglio quali sono, utilizzo la funzione divisor_count(n)
Un esempio pratico
Carico in memoria la funzione divisors() dal modulo sympy
from sympy import divisors
Poi calcolo i divisori di 200
>>> divisors(200)
Il risultato è un oggetto iterabile con i divisori del numero 200, compreso il numero stesso.
[1, 2, 4, 5, 8, 10, 20, 25, 40, 50, 100, 200]
Ora calcolo i divisori propri di 200 indicando l'attributo proper=True
>>> divisors(200, proper=True)
Il risultato è una lista con i divisori propri di 200
[1, 2, 4, 5, 8, 10, 20, 25, 40, 50, 100]
In questo caso non c'è 200 perché non è un divisore proprio.
I divisori propri di un numero sono tutti i divisori tranne il numero stesso.
E così via.
Video esempio