viernes, 22 de abril de 2016

DIAGRAMA DE FLUJO: Determinar si un número es Perfecto


DIAGRAMA DE FLUJO: Determinar si un número es Perfecto o no.


Determinar si un número es perfecto. Aquí lo determinamos mediante un diagrama de flujos para que puedas implementarlo en cualquier lenguaje de programación.
Un número es perfecto cuando es igual a la suma de sus divisores propios.
Los divisores propios de un número son los divisores que son estrictamente más pequeños que ese número.
Página en facebook: http://www.facebook.com/daniel1p

martes, 19 de abril de 2016

DIAGRAMA DE FLUJO: Determinar si un número es primo


DIAGRAMA DE FLUJO: Determinar si un número es primo


Esta es la novena entrega de videos tutoriales en la serie de videos de Diagramas de Flujos en YouTube.

¡Deja tu comentario en la caja de comentarios!

miércoles, 9 de marzo de 2016

Numeros de 6 digitos en python: Hallar el mayor numero de seis digitos que sea un cuadrado perfecto y el producto de dos numeros sucesivos menos 800

# hallar el numero de 6 digitos que sea un cuadrado perfecto y el producto de dos numeros sucesivos menos 800

def isCP(n):
    # me dice si n es un cuadrado perfecto
    vf = False # no lo es
    raiz = int(n**0.5)
    if raiz*raiz == n:
        vf = True
    return vf

def pTwonumberConsec(n):
    # me dice si n es el producto de dos numeros consecutivos enteros menos 800
    x = 1002
    y = 1001
    vf = 0 # no lo es
    while x*y-800 >= n:
        if not n != x*y-800:
            vf = 1
        x -= 1
        y -= 1
    return vf

# main
m = 0 #mayor
for x in range(100000,1000000):
    if isCP(x) and pTwonumberConsec(x):
            m = x
print (m)


INPUT

OUTPUT
640000


Ahora, en vez de restarle 800 al producto de los dos números enteros sucesivos, réstale 400 y comenta tu respuesta!

dpb, Daniel Peña

jueves, 25 de febrero de 2016

Juego del Ahorcado en Python

Problema 3. Juego del ahorcado en python. El jugador 1 introduce una palabra, luego el jugador trata de adivinar esa palabra. El jugador 2 cuenta con un total de 5 vidas.

Solución: en Python.
Hay un problema sencillo en este código, te reto a encontrarlo, arreglarlo y luego a compartirlo en esta comunidad.

# Juego del ahorcado

w = input("Secret word: ") # secret word
e = "_ "*len(w) # espacios
e = e.split()
print (' '.join(e))

s = 1 # sigue
v = 5 # vidas
while s and v > 0:
my_word = input("Guess a letter: ")
if my_word in w:
idx = w.index(my_word)
e[idx] = my_word
print (' '.join(e))
    if my_word not in w:
v = v - 1
        print ("Vidas:",v)
if ''.join(e) == w:
print ("You won!")
s = 0

dpb, Daniel Peña

Solución de una ecuación de segundo grado.

Problema: Hallar la solución de una ecuación de segundo grado. Tomar en cuenta las raíces complejas y las reales.

Lenguaje utilizado: Python

# Calcular las raices de una ecuacion de segundo grado.
# Tomar en cuenta las raices reales e imaginaria.

from decimal import *

# Paso 1: crear la funcion
def solucion(a,b,c):
    # devolver las raices reales o imaginarias
    # Paso 2: calcular el discriminante
    d = b*b - (4*a*c)
    # Paso 3: Llevandoso de la matematica detras de esto,
    # calculamos las raices dependiendo del discriminante
    if d < 0:
        #print ("DEBUG: determinante negativo.")
        # Si esto sucede, entonces las soluciones son imaginarias.
        # La parte real de la solucion sera igual a cero.
        xr1 = 0
        xi1 = d**0.5/(2*a)
        xr2 = 0
        xi2 = -(d**0.5/(2*a))
        return "Xi1:",xi1, "Xi2:",xi2
    elif d > 0:
        #print ("DEBUG: determinante postivo")
        # Si esto sucede, entonces existen dos soluciones reales distintas
        xr1 = -b/(2*a) + (d**0.5)/(2*a)
        xi1 = 0
        xr2 = -b/(2*a) - (d**0.5) / (2*a)
        xi2 = 0
        return "X1:",xr1, "X2:",xr2
    else:
        #print ("DEBUG: determinante igual a cero")
        # Si esto sucede, es porque d es igual a cero. En este caso, las soluciones son reales e iguales.
        xr1 = -b/(2*a) + (d**0.5)/(2*a)
        xr2 = xr1
        return "Xr1:",xr1, "Xr2:",xr2
   
a = input("Coeficiente a: ")
b = input("Coeficiente b: ")
c = input("Coeficiente c: ")
print (solucion(int(a),int(b),int(c)))


Si tienes otra solución más eficiente compártela con la comunidad!  Gracias.

dpb, Daniel Peña. 

martes, 23 de febrero de 2016

Todos los números positivos menores que 500, cuyos cuadrados terminen en el mismo número

Lenguaje de programación utilizado: Python

Solución 1.

# numeros del 1 al 500, cuyos cuadrados terminen en el mismo numero

nums = [] # numeros

for n in range(1,500):
    val = (n*n)%(10**len(str(n)))
    if n == val:
        list.append(n)
print (list)

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Solución 2.

# numeros del 1 al 500, cuyos cuadrados terminen en el mismo numero

nums = [] # numero

for n in range(1,500):
    if str(n*n).endwith(str(x)):
        nums.append(x)
print (nums)