예제 #1
0
def createMatrix():
	netMatrixString = pi.readFile("resources/107.txt")
	temp = netMatrixString.splitlines()
	# special code, 0's represent no connection
	# otherwise the distance represents it
	netMatrix = [[int(a*(a != "-") + "0"*(a == "-")) for a in x.split(",")] for x in temp]
	return netMatrix
예제 #2
0
파일: prob067.py 프로젝트: bfishbaum/euler
def maxPath():
	file = prime.readFile("resources/67.txt")
	file = file.splitlines() 
	tri = [[int(y) for y in x.split(" ")] for x in file]

	result = [tri[0]]
	for x in range(1,len(tri)):
		result.append([])
		for y in range(len(tri[x])):
			z = max(getAboveTwo(x,y,result))
			result[-1].append(tri[x][y] + z)
	return result
예제 #3
0
def maxPath():
    file = prime.readFile("resources/67.txt")
    file = file.splitlines()
    tri = [[int(y) for y in x.split(" ")] for x in file]

    result = [tri[0]]
    for x in range(1, len(tri)):
        result.append([])
        for y in range(len(tri[x])):
            z = max(getAboveTwo(x, y, result))
            result[-1].append(tri[x][y] + z)
    return result
예제 #4
0
#Solved
import prime
import math
numbers = [(int(a.split(",")[0]), int(a.split(",")[1]))
           for a in prime.readFile("resources/99.txt").splitlines()]


def compareExps(a, b):
    print(a, b, end=" ")
    aLogb = math.log(a[0], b[0])
    print(aLogb)
    if (b[1] / aLogb > a[1]):
        return b
    else:
        return a


numbers2 = numbers[:]

while (len(numbers) > 1):
    a = numbers.pop(0)
    b = numbers.pop(0)
    numbers.append(compareExps(a, b))
print(numbers[0])
print(numbers2.index(numbers[0]))
예제 #5
0
파일: prob089.py 프로젝트: bfishbaum/euler
    if (num >= 90):
        fin += "XC"
        num %= 90
    elif (num >= 50):
        fin += "L"
        num %= 50
    elif (num >= 40):
        fin += "XL"
        num %= 40
    fin += "X" * (num // 10)
    num %= 10
    if (num == 9):
        fin += "IX"
        num %= 9
    elif (num >= 5):
        fin += "V"
        num %= 5
    elif (num >= 4):
        fin += "IV"
        num %= 4
    fin += "I" * num
    return fin


roms = prime.readFile("resources/89.txt").splitlines()
total = 0
for rom in roms:
    newRom = minimal(romToNum(rom))
    total += len(rom) - len(newRom)
print(total)
예제 #6
0
#Solved
import prime as pi
matrix = pi.readFile("resources/11.txt")
matrix = [[int(x) for x in j.split(" ")] for j in matrix.splitlines()]


def product(x):
    product = 1
    for y in x:
        product *= y
    return product


def iterate2DList(x):
    max = 0
    for row in range(len(x)):
        for col in range(len(x[row])):
            z = searchDirAtPoint(row, col, x, max)
            if (z > max): max = z
    return max


def searchDirAtPoint(row, col, board, max):
    dirs = [(dRow, dCol) for dRow in range(-1, 2) for dCol in range(-1, 2)]
    dirs.pop(4)
    for dir in dirs:
        try:
            product = 1
            list1 = []
            for i in range(4):
                z = board[row + dir[0] * i][col + dir[1] * i]
예제 #7
0
파일: prob011.py 프로젝트: bfishbaum/euler
#Solved
import prime as pi
matrix = pi.readFile("resources/11.txt")
matrix = [[int(x) for x in j.split(" ")] for j in matrix.splitlines()]
def product(x):
	product = 1
	for y in x:
		product *= y
	return product

def iterate2DList(x):
	max = 0
	for row in range(len(x)):
		for col in range(len(x[row])):
			z = searchDirAtPoint(row,col,x,max)
			if(z > max): max = z
	return max
			

def searchDirAtPoint(row,col,board,max):
	dirs = [(dRow,dCol) for dRow in range(-1,2) for dCol in range(-1,2)]
	dirs.pop(4)
	for dir in dirs:
		try:
			product = 1
			list1 = []
			for i in range(4):
				z = board[row + dir[0] * i][col + dir[1] * i]
				product *= z
				list1 += [z]
			if product > max:
예제 #8
0
파일: prob099.py 프로젝트: bfishbaum/euler
#Solved
import prime
import math
numbers = [(int(a.split(",")[0]),int(a.split(",")[1]))
			 for a in prime.readFile("resources/99.txt").splitlines()]

def compareExps(a,b):
	print(a,b,end=" ")
	aLogb = math.log(a[0],b[0])	
	print(aLogb)
	if(b[1] / aLogb > a[1]):
		return b
	else: return a

numbers2 = numbers[:]

while (len(numbers) > 1):
	a = numbers.pop(0)
	b = numbers.pop(0)
	numbers.append(compareExps(a,b))
print(numbers[0])
print(numbers2.index(numbers[0]))




예제 #9
0
파일: prob102.py 프로젝트: bfishbaum/euler
			return 1

def triContainsOrigin(tri):
	p1,p2,p3,o = tri[0],tri[1],tri[2],(0,0)	
	s1 = createLine(p2,p3)
	s2 = createLine(p1,p3)
	s3 = createLine(p1,p2)
	if(pointLine(p1,s1) != pointLine(o,s1)):
		return False
	if(pointLine(p2,s2) != pointLine(o,s2)):
		return False
	if(pointLine(p3,s3) != pointLine(o,s3)):
		return False
	return True

triangles = prime.readFile("resources/102.txt").splitlines()
tris = []
for tri in triangles:
	a = [int(x) for x in tri.split(",")]
	s1 = (a[0],a[1])
	s2 = (a[2],a[3])
	s3 = (a[4],a[5])
	tris.append((s1,s2,s3))

total = 0
for x in tris:
	if(triContainsOrigin(x)):
		total += 1
print(total)
	
예제 #10
0

def triContainsOrigin(tri):
    p1, p2, p3, o = tri[0], tri[1], tri[2], (0, 0)
    s1 = createLine(p2, p3)
    s2 = createLine(p1, p3)
    s3 = createLine(p1, p2)
    if (pointLine(p1, s1) != pointLine(o, s1)):
        return False
    if (pointLine(p2, s2) != pointLine(o, s2)):
        return False
    if (pointLine(p3, s3) != pointLine(o, s3)):
        return False
    return True


triangles = prime.readFile("resources/102.txt").splitlines()
tris = []
for tri in triangles:
    a = [int(x) for x in tri.split(",")]
    s1 = (a[0], a[1])
    s2 = (a[2], a[3])
    s3 = (a[4], a[5])
    tris.append((s1, s2, s3))

total = 0
for x in tris:
    if (triContainsOrigin(x)):
        total += 1
print(total)
예제 #11
0
파일: prob089.py 프로젝트: bfishbaum/euler
	num %= 100
	if(num >= 90):
		fin += "XC"
		num %= 90
	elif(num >= 50):
		fin += "L"
		num %= 50
	elif(num >= 40):
		fin += "XL"
		num %= 40
	fin += "X" * (num//10)
	num %= 10
	if(num == 9):
		fin += "IX"
		num %= 9
	elif(num >= 5):
		fin += "V"
		num %= 5
	elif(num >= 4):
		fin += "IV"
		num %= 4
	fin += "I" * num
	return fin

roms = prime.readFile("resources/89.txt").splitlines()
total = 0
for rom in roms:
	newRom = minimal(romToNum(rom))
	total += len(rom) - len(newRom)
print(total)