def run(problem): print() print("Problem", problem) db = PEDB() data = db.getProblem(problem) print('Title:', data['title']) if data['solved']: print('Answer:', data['answer']) print('Time:', data['time']) print() print("===Calculating===") moduleName = 'pr' + str(1000 + problem)[1:] #try: m = import_module(moduleName) #except ImportError as e: # print("the Problem is not done") # return None, None t1 = time() * 1000 answer = None try: answer = m.run() print("The answer is", answer) print("Finished in ", end = "") except KeyboardInterrupt: print("Interruped at ", end = "") t2 = time() * 1000 print(int(t2 - t1), 'ms') print("===The End===\n") return answer, int(t2 - t1)
if __name__ == "__main__": os.chdir(os.path.split(os.path.realpath(__file__))[0]) print(platform.python_implementation(), platform.architecture()[0]) print("Python " + platform.python_version()) print() if len(sys.argv) <= 1: print("Please Enter the Problem Number: ", end = "") t = input() else: t = sys.argv[1] if re.match(r'^\s*\d+\s*$', t): pn = int(t) if pn == 0: db = PEDB() solved = sorted([int(x) for x in db.db.keys() if db.getProblem(x)['solved']]) print("There are " + str(len(solved)) + " problems solved") t1 = time() for m in solved: ans, t = run(m) db.record(m, solved=True, time=t) t2 = time() db.writeFile() print("Finished all in " + str(int(t2-t1)) + 's') else: ans, t = run(pn) print("Is it correct?(y/[n])", end = " ") if (input()+' ')[0] in 'yY': db = PEDB() db.record(pn, solved=True, time=t, answer=ans) db.writeFile()
- functools - progressbar - ctypes(with gcc, make) - fractions - math - NetworkX Solved Problems =============== """ db = PEDB() f = open('README.md', 'w', encoding = "utf-8") f.write(prefix) for x in db.getSolvedProblems(): f.write('+ ' + str(1000+x)[1:] + ' ' + db.getProblem(x)['title'] + r' [:link:](http://projecteuler.net/problem=' + str(x) + ') ') if db.getProblem(x)['time'] > 60000: f.write(":warning: ") if db.getProblem(x)['time'] < 50: f.write(":clock1:") if os.path.exists('pr'+str(1000+x)[1:]+'\\algo.md'): f.write(":thought_balloon:") f.write("\n\n") f.write(' - answer: ' + str(db.getProblem(x)['answer']) + ' \n') f.write(' - min used time: ' + str(db.getProblem(x)['time']) + ' ms\n\n') rm = open('pr'+str(1000+x)[1:]+'\\README.md', 'w') rm.write(str(1000+x)[1:] + ' ' + db.getProblem(x)['title'] + r' [:link:](http://projecteuler.net/problem=' + str(x) + ') ') if db.getProblem(x)['time'] > 60000: rm.write(":warning:") if db.getProblem(x)['time'] < 50: