Pythonで数値が素数かどうかを調べるには、以下のコード（抜粋）を使うことができる。

```
import math
def is_prime(n):
  for i in range(2,int(math.sqrt(n))+1):
    if (n%i) == 0:
      return False
  return True

while True:
    n = input("Ingrese un número para comprobar si es primo. [Pulse 0 para salir]")
    if n == 0:
        print("Saliendo del programa.")
        break
    is_prime(n)
```

さて、上の関数定義を見てみよう：
- 関数を最適化し、計算を少なくするために、Pythonの組み込みmathsモジュールをインポートし、math.sqrt()関数を使用して、その数の平方根を計算します。
- nは完全平方ではないかもしれないので、整数に変換する必要があります。int(var) を使って var を int にキャストする。
- 実際に√nまでチェックしていることを確認するため、range()に+1を追加する。
- ifでは、この数に0を返す割り算があるかどうかをチェックする。

最後に、与えられた数と出力関数が0かどうかをチェックするためにループを回します。
Para saber si un número es primo o no en python, podrías usar el siguiente extracto de código.

```
import math
def is_prime(n):
  for i in range(2,int(math.sqrt(n))+1):
    if (n%i) == 0:
      return False
  return True

while True:
    n = input("Ingrese un número para comprobar si es primo. [Pulse 0 para salir]")
    if n == 0:
        print("Saliendo del programa.")
        break
    is_prime(n)
```

Ahora, analicemos la definición de función anterior:
- Para optimizar la función, y realizar menos cálculos, calculamos la raíz cuadrada de dicho numero, importando el módulo matemático incorporado de Python y usando math.sqrt() función.
- Como puede que n no sea un cuadrado perfecto, tendremos que convertirlo en un número entero. Usar int(var) para emitir var en una int.
- Para asegurarnos de que realmente estamos verificando hasta √n, agregamos un +1 en el range(), ya que esta excluye el último número del rango.
- En el if, comprobamos si este número posee alguna división que devuelva 0, lo que significaría que el número es primo.

Por último, realizamos el bucle para comprobar que el número indicado y la función de salida si este fuese cero.