El siguiente código nos dice cuántos divisores tiene un número.
n = 100
divisores = 0
for i in range(1, n + 1):
if (n % i == 0):
divisores = divisores + 1
print(divisores)
¿Cómo se puede cambiar para mirar si un numero es primo? Un número es primo si tiene dos divisores, así que podríamos añadir una condición después de contar los divisores.
n = 100
divisores=0
for i in range(1,n+1):
if (n%i==0):
divisores=divisores+1
if (divisores==2):
print("primo")
else:
print("no primo")
Es probable que queramos usar este código muchas veces en nuestro programa. En lugar de copiarlo y pegarlo varias veces, lo podemos encapsular y darle un nombre:
def primo(n):
divisores=0
for i in range(1,n+1):
if (n%i==0):
divisores=divisores+1
if (divisores==2):
return true
else:
return false
Hemos creado una nueva instrucción primo() a la que le podemos pasar un número y nos dirá si es primo o no. A esta encapsulación se le llama función.
En la cabecera de la función podemos ver def comando que indica que estamos delante de una función, primo, que es el nombre de la función, y (n) que son los parámetros de la función. Los parámetros nos permiten ejecutar esa parte del código con valores distintos. Por ejemplo primo(7) devolverá cierto, y en cambio primo(10) devolvería falso. La instrucción return es la que "devuelve" el resultado al punto del código desde donde se ha llamado a la función.
Un ejemplo para contar todos los números primos entre 2 y 100 (ambos incluidos):
def primo(n):
divisores = 0
for i in range(1, n + 1):
if (n % i == 0):
divisores = divisores + 1
if (divisores == 2):
return true
else:
return false
numeros = 0
for i in range (2, 101):
if primo(i):
numeros = numeros + 1
print(numeros)
Añadir nuevo comentario