Informática, pregunta formulada por Usuario anónimo, hace 1 año

alguien puede ayudarme a corregir mi algoritmo en python? ​

Adjuntos:

Usuario anónimo: #######
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)
Usuario anónimo: Me piden que imprima true cuando ingresen un número y sea primo

Respuestas a la pregunta

Contestado por kenowashi
2

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'


Usuario anónimo: tuve que hacerlo de nuevo
Usuario anónimo: #6 programa funcional
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)
Usuario anónimo: El y esta demas
Otras preguntas