Problema 21

Hecho en archivo de python

Problema 22


In [1]:
from IPython.display import HTML
HTML('<iframe src="https://projecteuler.net/problem=22" width=800 height=400></iframe>')


Out[1]:

In [66]:
import numpy
import time

start = time.time()

def names():
    f = open("p022_names.txt", "r")
    text = f.read().split(",")
    words = []
    for i in text:
        words.append(i.replace("\"", ""))
    return sorted(words)

def value(str_list):
    sum_t = 0
    index = 0
    dict_val = { 'A': 1, 'B':2, 'C': 3, 'D': 4, 'E': 5, 'F': 6,'G': 7,'H': 8,'I': 9,'J': 10,'K': 11,'L': 12,'M': 13,'N': 14,'O': 15,'P': 16,'Q': 17,'R': 18,'S': 19,'T': 20,'U': 21,'V': 22,'W': 23,'X': 24,'Y': 25,'Z': 26 }
    for i in str_list:
        index += 1
        sum_w = 0
        for j in i:
            sum_w += dict_val[j]
        sum_t += sum_w * index
#         print(i, sum_w * index)
    return sum_t
    
print(value(names()))
value(names())
print("t = {:.5f} seg".format(time.time() - start))


871198282
t = 0.01753 seg

In [56]:
a = ['adsaf', 'ewrwe' 'asdf ' 'qwer ']
a.sort()

In [57]:
a


Out[57]:
['adsaf', 'ewrweasdf qwer ']

In [59]:
sorted(a)


Out[59]:
['adsaf', 'ewrweasdf qwer ']

Problema 24


In [1]:
from IPython.display import HTML
HTML('<iframe src="https://projecteuler.net/problem=24" width=800 height=400></iframe>')


Out[1]:

In [7]:
import itertools
import time

start = time.time()

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
count = 0
for i in itertools.permutations(a, 10):
    count +=1
    if count == 1000000:
        print(i)
        break
        
print("t = {:.5f} seg".format(time.time() - start))


(2, 7, 8, 3, 9, 1, 5, 4, 6, 0)
t = 0.22544 seg

In [ ]:
## AQUI ESTA EL CODIGO DE LA FUNCION EMPLEADA DEL MODURLO itertools
def permutations(iterable, r=None):
    pool = tuple(iterable)
    n = len(pool)
    r = n if r is None else r
    if r > n:
        return
    indices = list(range(n))
    cycles = list(range(n, n-r, -1))
    yield tuple(pool[i] for i in indices[:r])
    while n:
        for i in reversed(range(r)):
            cycles[i] -= 1
            if cycles[i] == 0:
                indices[i:] = indices[i+1:] + indices[i:i+1]
                cycles[i] = n - i
            else:
                j = cycles[i]
                indices[i], indices[-j] = indices[-j], indices[i]
                yield tuple(pool[i] for i in indices[:r])
                break
        else:
            return

Problema 25


In [9]:
from IPython.display import HTML
HTML('<iframe src="https://projecteuler.net/problem=25" width=800 height=400></iframe>')


Out[9]:

In [32]:
import time

start = time.time()
        

def fib():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

f = fib()
for i in range(10000):
    d = next(f)
    if len(str(d)) == 1000:
        print(i)
        break

print("t = {:.5f} seg".format(time.time() - start))


4782
t = 0.03068 seg

In [17]:
10
print(len(str(10)))


2

In [ ]: