alguien puede ayudarme a corregir mi algoritmo en python?
![](https://es-static.z-dn.net/files/ded/1fcedc42bec50de4a0e0651b028927da.jpg)
Respuestas a la pregunta
Respuesta:
Explicación:
El algoritmo lo puedes simplificar porque entiendes que el 1 y el mismo número son factores del número que te den.
Podrías crear un contador que en lugar de las variables 'A' y 'y' para la tarea que les asignas. Yo haría así la función:
def Prim(x):
cont = 0
for i in range(2, x):
if x%i == 0:
cont = cont + 1
if cont == 0:
print("true")
else:
print("false")
x = int(input('x: '))
Prim(x)
Mira que tienes un contador que va a sumar solo si la operación módulo da cero, porque recuerda que el resultado de esa operación es el residuo y por tanto un residuo cero implica que pudo dividirse completamente y sería un factor.
Solo había una cosa que vi rara y es que asignas a una variable el llamado de tu función, pero tu función no tiene nada para retornar entonces no necesitas declarar a 'Q'
def Prim(x):
A=0
y=0
for i in range(1,x+1):
x = float(x)
if x%i == 0:
A = A+1
if A > 2:
print("false")
else:
print("true")
#Inicio
x=int(input("x: "))
Q=Prim(x)
def Prim(x):
A=0
y=0
for i in range(1,x+1):
if x%i == float(x%i):
A = (A+1)
y=(y+1)
if (y-2) == A:
print("true")
else:
print("false")
x=int(input("x: "))
Q=Prim(x)