[ Foro de Python ]
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
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)
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.)