# Project Euler # Problem 33: Digit cancelling fractions import pe_functions as pe import math def sol(): ''' Solution to project euler problem. ''' nprod = 1 dprod = 1 for i in range(1, 10): for d in range(1, i): for n in range(1, d): if d * (10 * n + i) == n * (i * 10 + d): dprod *= d nprod *= n dprod /= math.gcd(nprod, dprod) return int(dprod) if __name__ == '__main__': pe.runSolution(sol)
# Project Euler # Problem 15: Lattice paths import pe_functions as pe import numpy as np def sol(grid_size): ''' Solution to project euler problem. ''' grid = [1] * grid_size for i in range(grid_size): for j in range(i): grid[j] = grid[j] + grid[j - 1] grid[i] = 2 * grid[i - 1] return (grid[grid_size - 1]) if __name__ == '__main__': pe.runSolution(sol, 20)
# Project Euler # Problem 12: Highest divisible triangular number import pe_functions as pe import numpy as np def sol(Limit): ''' Solution to project euler problem. ''' triangleNumber = 1 for n in range(2, 1000000): triangleNumber += n if pe.numDivisors(triangleNumber) >= Limit: return triangleNumber break if __name__ == '__main__': pe.runSolution(sol, 500)
# Project Euler # Problem 20: Factorial digit sum import pe_functions as pe import numpy as np def sol(n): ''' Solution to project euler problem. ''' digits = list(str(pe.factorial(n))) return (sum([int(i) for i in digits])) if __name__ == '__main__': pe.runSolution(sol, 100)