Foros del Web » Programando para Internet » Python »

ayuda para ayuda para resolver problema de numeros curiosos

Estas en el tema de ayuda para ayuda para resolver problema de numeros curiosos en el foro de Python en Foros del Web. Hola! Soy nueva en el foro y estoy estudiando ingenieria, y tengo informatica como materia. Es la primera vez en mi vida que hago algo ...
  #1 (permalink)  
Antiguo 25/09/2010, 19:50
angel10
Invitado
 
Mensajes: n/a
Puntos:
ayuda para ayuda para resolver problema de numeros curiosos

Hola! Soy nueva en el foro y estoy estudiando ingenieria, y tengo informatica como materia. Es la primera vez en mi vida que hago algo relacionado con la programacion, asi que invoco la ayuda de los conocedores del tema que puedan ayudarme a resolver lo siguiente:

tengo que escribir un programa que, dado un numero entero positivo
compruebe si es un numero curioso (un numero curioso es aquel que al ser multiplicado por si mismo da como resultado otro numero terminado en el numero inial dado)
hasta ahora hice esto:


n = int(raw_input('ingresa un numero: '))
if n <= 0:
print 'Ha cometido un error: el numero debe ser positivo.'
n = int(raw_input('ingresa un numero: '))
elif n > 0:
n = n**2


Pero no estoy ni cerca de la solucion, tengo que usar cadenas, pasar el producto a cadena y comparar los elementos con el numero inicial?

si alguien puede darme alguna idea o solucion seria fantastico
Mil gracias!!:
  #2 (permalink)  
Antiguo 25/09/2010, 20:03
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ayuda para ayuda para resolver problema de numeros curiosos

El numero es solo de un dígito? o puede ser mas de un dígito?

Anyway
Código Python:
Ver original
  1. def readInt(message):
  2.     while True:
  3.         line = raw_input(message)
  4.         if line.isdigit():
  5.             return int(line)
  6.  
  7. def isCur(num, init):
  8.     num = num * num
  9.     if( str(num).endswith(str(init)) ):
  10.         return True
  11.     return False
  12.  
  13. init = readInt("Dame un numero inicial: ")
  14. num = readInt("Dame un numero (posiblemente curioso): ")
  15. if isCur(num, init):
  16.     print num, "es curioso"
  17. else:
  18.     print num, "NO es curioso"
  #3 (permalink)  
Antiguo 26/09/2010, 08:25
 
Fecha de Ingreso: septiembre-2010
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: ayuda para ayuda para resolver problema de numeros curiosos

hola, en caso de usar varios digitos como seria?
y eliminando el pedido del valor inicial de la linea 13, se podria hacer?
desde ya muchas gracias!
  #4 (permalink)  
Antiguo 26/09/2010, 16:26
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ayuda para ayuda para resolver problema de numeros curiosos

El programa funciona para varios dígitos.

El problema no especificaba que numero inicial (si era el mismo u otro), así que por eso lo pedía.

borra la linea 13 y haces un

init = num
Después de leer num claro.
  #5 (permalink)  
Antiguo 05/10/2010, 08:04
angel10
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ayuda para ayuda para resolver problema de numeros curiosos

Hola razpeitia!! antes que nada mil gracias por responder. Finalmente termine el trabajo, aca se los dejo.
No pude usar el de funciones porque no habiamos visto el tema en clase, asi que la solucion tenia que ser con los temas que se habian visto en clase.
Todavia no tengo la nota, si apruebo les aviso, gracias!

Código HTML:
num = int(raw_input("Dame un numero (posiblemente curioso): "))
cuad=str(num**2)
x= str(num)
while num <= 0:
  print 'Has cometido un error: el numero debe ser positivo.'
  num = int(raw_input('Ingresa un numero: '))
while num !=0:
  if num>0 and num!= 1:
    if cuad.find(x)!=-1 and cuad[-1]== x[-1]:
      if cuad[0]!=x[0]:
        print 'El número %d es curioso'%(num)
      else: 
        print 'El número %d no es curioso'%(num)
    else:
      print 'El número %d no es curioso'%(num)
  elif num== 1:
    print 'El número 1 es curioso'
  
  break

Etiquetas: numeros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:51.