ihit's diary

ちょっとしたメモに

Project Euler

Project Euler 33

33番 分子と分母に共通した数字を取り除くと約分した結果と同じになる分数を探す問題コードは下のようになったけど、正直あんまり良くない reduce_keta関数が分母分子に共通した数字を取り除くんだけど0を含んだ数字を入れるとダメ 今回は0を含んだ数字は明…

Project Euler 32

32番 パンデジタルといって1から9までの数字を1回ずつ使って掛け算の式を成立させる問題 できたもののイマイチ…今回は順列を求めるのにitertoolsを使った またリストやタプルの数字列を一つの数値にするためにreduceを使った 例 reduce(lambda x,y: x*10+y, …

Project Euler 30, 31

30番 各桁を5乗して足すと同じになる数を求める N桁の数の5乗和の最大値は 9^5*N #!/usr/bin/env python # -*- coding: utf-8 -*- summary = 0 for i in range(2,9**5*6): right = 0 left = i while left > 0: right += (left % 10)**5 left /= 10 if i == r…

Project Euler 28, 29

28番 数字を渦巻状に配置して対角に来る数字の和を求める問題 #!/usr/bin/env python # -*- coding: utf-8 -*- summary = 0 for i in range(1,1001+1,2): summary += 4*i*i - 6*i + 6 print summary-3 29番 a^bをa,bそれぞれ2~100に変えた時何個違う数字がで…

Project Euler 26, 27

26番 最長の循環小数を求める問題 #!/usr/bin/env python # -*- coding: utf-8 -*- max_ite = 0 max_d = 0 for i in range(2,1000): iterate = 0 rest = 1 rest_list = [] while 1: rest = rest * 10 % i iterate += 1 if rest == 0 or rest in rest_list: b…

Project Euler 24, 25

24番 0~9の順列の100万番目を求める問題 #!/usr/bin/env python # -*- coding: utf-8 -*- num_list = range(0,10) #0から数え始める Order = 1000000 Order -= 1 ans = 0 for i in range(0,10): tmp = 1 for j in range(1,10 - i): tmp *= j ans = ans * 10 …

Project Euler 22, 23

今回もProject Euler22番 テキストファイルの名前を並び替えてスコア計算pythonでテキスト分解するのは結構簡単 sort()もかなり便利 #!/usr/bin/env python # -*- coding: utf-8 -*- line = open('names.txt').read() itemList = line[:-1].split(',') newit…

Project Euler 20, 21

前々から少しずつ解いてきたProject Euler(https://projecteuler.net/)の自分なりの解答をここに残しておく。20番 100の階乗の各桁の和を求める問題 #!/usr/bin/env python # -*- coding: utf-8 -*- ans = [1] for i in range(1,101): C = 0 for j in range(…