#! /usr/bin/even python# -*- coding: iso-8859-15 -*-def combinatoria(k, r): def factorial(n): if n == 1: return 1 elif n == 0: #El factorial de 0 es 1 o eso creo :_D return 1 else: return n * factorial(n-1) resultado = factorial(k)/(factorial(r)*factorial(k-r)) return resultado #El valor que devuelve la funcion combinatoriadef euromillon(): return combinatoria(50, 5) * combinatoria(9, 2) # Combinacion de Casillas por Estrellasdef son_letras(vector): # Funcion para verificar que solo se introducen numeros alguna_letra = False for c in vector: if not( c >= '0' and c <= '9' ): alguna_letra = True break if alguna_letra: #print'Hay alguna letra' return True else: #print'Todo va bien, ninguna letra introducida' return False##### Comprobacion de la funcion factorial(n)## n = int(raw_input('Escribe el factorial a calcular: '))# print'El resultado es: %d' % factorial(n)######salida = ' 'while salida != 'exit': print'Escribe los valores naturales para la combinación (k,r)' k1=(raw_input('Valor de k = ')) r1=(raw_input('Valor de r = ')) if not( (son_letras(k1) == False) and (son_letras(r1) == False) ): print "¡Error! Datos incorrectos." else: k = float(k1) r = float(r1) if (k <= r): print '\n¡¡¡ Error !!! k tiene que ser mayor que r.\n' #elif ( k < 0 or r < 0): ##### Ya no es necesario, al introducir la funcion son_letras() # print'\n¡¡¡ Error !!! Debes introducir números naturales.\n' else: print'Las combinaciones posibles son %d' % int(combinatoria(k, r)) print'Las combinaciones posibles del euromillon son: %d'% euromillon() salida = raw_input('Pulse una intro para continuar\nPara salir teclee \'exit\'\n')