Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Meta en 2 Octubre 2010, 15:12 PM

Título: [python] calcular impar y su doble.
Publicado por: Meta en 2 Octubre 2010, 15:12 PM
Buenas:

¿Cómo hago con Python 2.6, al introducir un número, determine si éste es el doble de un número impar?

Por ahora he hecho esto:
Código (python) [Seleccionar]
# Introducir un valor.
a = raw_input('introduce un número: ')



if a % 2 == 0 and a * 2:
    print 'El número es par.'
    print a


Me da este error:
raceback (most recent call last):
  File "/home/acaymo/NetBeansProjects/tema4a6/src/tema4a6.py", line 25, in <module>
    if a % 2 == 0 and a * 2:
TypeError: not all arguments converted during string formatting


Saludo.
Título: Re: [python] calcular impar y su doble.
Publicado por: [L]ord [R]NA en 2 Octubre 2010, 15:46 PM
primero que todo debes hacer la conversion del raw_input ya que este devuelve un string.

Código (python) [Seleccionar]
a=int(raw_input('introduce un número: '))

Si te trata de el doble de un numero par primero que todo cuando es dividido por 2 debe dar un numero par, por lo cual nos quedaria

a%2==0

pero de esa division no necesitamos saber si ese es el numero sino si la mitad de ese numero tambien es par... por lo cual nos quedaria:

(a/2)%2==0

que tambien es igual a:

a%4==0
Título: Re: [python] calcular impar y su doble.
Publicado por: criskapunk en 2 Octubre 2010, 17:57 PM
Perdon por el offtopic, pero me parecio mejor preguntarlo aca.

@Lord R.N.A.

Como llegas  a la conclusion de que:
Código (python) [Seleccionar]
(a/2)%2==0
Es lo mismo que:
Código (python) [Seleccionar]
a%4==0

Es lo unico que no entendi, ya que use la primer forma para resolverlo.

Un saludo y gracias ;)
Título: Re: [python] calcular impar y su doble.
Publicado por: Franr en 2 Octubre 2010, 18:24 PM
Cita de: criska en  2 Octubre 2010, 17:57 PM
Perdon por el offtopic, pero me parecio mejor preguntarlo aca.

@Lord R.N.A.

Como llegas  a la conclusion de que:
Código (python) [Seleccionar]
(a/2)%2==0
Es lo mismo que:
Código (python) [Seleccionar]
a%4==0

Es lo unico que no entendi, ya que use la primer forma para resolverlo.

Un saludo y gracias ;)

Extremo sobre medio, matemática de primer grado che ;D
Título: Re: [python] calcular impar y su doble.
Publicado por: [L]ord [R]NA en 2 Octubre 2010, 18:28 PM
porque '(a/b)/c' es igual a '(a/b)(1/c)' si multiplicas es igual a 'a/(b*c)'... disculpa la explicacion tan corta, estoy desde el celular.
Título: Re: [python] calcular impar y su doble.
Publicado por: Meta en 2 Octubre 2010, 18:45 PM
Para que lo sepan.

El resultado debe dar como dice abajo y lo explico de otra manera.

Citar
Diseña un programa que, dado un número entero,  determine si éste es el doble de un número impar.

Ejemplo: 14 es el doble de 7, que es impar.
Título: Re: [python] calcular impar y su doble.
Publicado por: criskapunk en 2 Octubre 2010, 18:54 PM
Algo asi:

Código (python) [Seleccionar]
def dobleImpar(n):
if (n/2) % 2 != 0:
print n, "es el doble de ", n/2, " que es impar"

num = int(raw_input("Ingrese un numero: "))
dobleImpar(num)


Un saludo ;)
Título: Re: [python] calcular impar y su doble.
Publicado por: Meta en 2 Octubre 2010, 19:03 PM
El def aún no debo usarlo.

Lo intento hacer así.

Código (python) [Seleccionar]

# Introducir un valor entero.
a = int(raw_input('introduce un número: '))
b = a / 2

if a % 2 == 0:
    print a, 'es el doble de ', b, 'que es impar.'


Su resultado es este:
Supuestamente da bien.
introduce un número: 14
14 es el doble de  7 que es impar.


Si introduzco el 16 su resultado es este:
introduce un número: 16
16 es el doble de  8 que es impar.


El 8 es par, no impar.

¿Respecto al tu código, puedes hacerlo similar al mio pero que funcione?

Gracias.
Título: Re: [python] calcular impar y su doble.
Publicado por: criskapunk en 2 Octubre 2010, 19:25 PM
Lo que haces en tu script es comprobar que a sea par, y lo que tenes que verificar es que b sea impar.

Código (python) [Seleccionar]
a = int(raw_input("Ingrese un numero: "))
b = a/2

if b % 2 != 0:    # Comprobamos que la mitad del numero ingresado sea impar
print a, "es el doble de ", b, " que es impar"

raw_input()


En caso de que la mitad del numero ingresado sea impar, mostrara el mensaje. En caso contrario, no hara nada.

Un saludo ;)
Título: Re: [python] calcular impar y su doble.
Publicado por: Novlucker en 2 Octubre 2010, 19:27 PM
Exacto, solo tienes que verificar que la división es impar, porque el doble de cualquier número siempre será un par.

Saludos
Título: Re: [python] calcular impar y su doble.
Publicado por: ace332 en 2 Octubre 2010, 20:38 PM
Se trata de verificar si un número par es el doble de otro que es impar..

Como este número es el doble de otro entonces debe ser par. Y además como es el doble de un impar termina no siendo multiplo de 4.

Osea que el número dado debe cumplir la condicion:

num % 2 == 0 && num %4 != 0

Saludos  ;)
Título: Re: [python] calcular impar y su doble.
Publicado por: [L]ord [R]NA en 2 Octubre 2010, 21:39 PM
me imagino que se refieren a algo asi?

Código (python) [Seleccionar]
a = input('Ingrese el numero: ')
if a%2!=0:
    print 'El numero que haz introducido es impar.'
elif a%4==0:
    print str(a)+' es el doble de '+str(a/2)+' que es par.'
else:
    print str(a)+' es el doble de '+str(a/2)+' que es impar.'
Título: Re: [python] calcular impar y su doble.
Publicado por: Meta en 2 Octubre 2010, 22:20 PM
Gracias, sólo quería esto.

Código (python) [Seleccionar]
# Introducir un valor entero.
a = int(raw_input('Introduce un número: '))
b = a / 2

# Acepta la condición siempre que el número de
#entrada sea el doble y impar.
if a % 2 == 0 and a % 4 != 0:
    print a, 'es el doble de ', b, 'que es impar.'