[ Foro de Python ]

NECESITO AYUDA

01-Sep-2018 10:55
Jorge Arancibia Leiva
2 Respuestas

Hola! necesito su ayuda para resolver unos problemas en el lenguaje de python, les agradecería mucho su ayuda por favor!


1.- Existen múltiples formas de calcular el máximo común divisor de un conjunto de números, escriba una función de nombre mcd que reciba dos números n1 y n2 como argumentos, y retorne el máximo común divisor. Por ejemplo para los argumentos 10 y 15 debe retornar 5.

Hice esto pero no es la respuesta al parecer:


def mcd(n1,n2):
resto=0
while(n2>0):
resto=n2
n2=n1%n2
n1=resto
return n1



2.-Para muchas aplicaciones matemáticas, conocer la potencia de 2 más grande que es menor o igual a cierto número, es muy útil. Escribe una función exponente, que dado un número n, retorne el exponente de dicha potencia de 2 más grande. Por ejemplo, si el número es 65, tu programa debe retornar 6, ya que 2? = 64.

Aquí puse esto pero tampoco es la respuesta según parece:


def exponente(n):
i=1
while 2**i<=n:
i=i+1
return i-1
print(exponente(128))


3.-Considere que existen los números primos y los números pandigitales. Los números pandigitales son aquellos que contienen todos los dígitos del 0 al 9 al menos una vez, como el 1023478695. Escribe una función panprimo que determine si un número n es pandigital y si al mismo tiempo, sus últimos 3 dígitos conforman un número primo, retornando True o False según corresponda. Por ejemplo:

1) El número 2424643 cumple que sus últimos 3 dígitos conforman un número primo (643), pero no es pandigital por lo tu función que debería retornar False.

2) El número 1234567890 cumple que es pandigital, pero sus últimos 3 dígitos no conforman un primo (890), por lo que tu función debería retornar False.

3) El número 10123485769 cumple que es pandigital y además el número conformado por sus 3 últimos dígitos (769) es primo, por lo que debería retornar True.

Tip1: Puedes convertir un entero a una cadena de texto con el método str(numero), y puedes verificar si alguna letra está en el esta cadena de texto haciendo if letra in string: ...

Tip2: Un número es primo si solo es divisible por 1 y por sí mismo. Para obtener los últimos tres dígitos, puedes obtener el resto del número en su división con 100.



Y aquí si que no tengo idea que hacer :c ayuda please!! ustedes son secos!! solo cuento con ustedes! :c


21-Oct-2018 23:05
Invitado (Al)

Yo hice esto, te da todos los divisores de los dos, incluyendo el maximo
def mcd(n1,n2):
   if n1<n2:
       for i in range (2,n2):
           if n1%i==0 and n2%i==0:
                 print (i)
             
   if n1>n2:
       for i in range (2,n1):
           if n1%i==0 and n2%i==0:
               print (i)


21-Oct-2018 23:35
Invitado (Al)

para la dos hice esto
def exponente (n):
   for i in range (1,n):
       if  2**(i)==n:
           print i
           break
       if 2**(i)>n:
           print i-1
           break






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)