Hecho en archivo de python
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))
In [56]:
a = ['adsaf', 'ewrwe' 'asdf ' 'qwer ']
a.sort()
In [57]:
a
Out[57]:
In [59]:
sorted(a)
Out[59]:
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))
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
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))
In [17]:
10
print(len(str(10)))
In [ ]: