30分プログラミング

1000未満の正の整数dについて、1/dの循環節の長さが最大となるものは何か?

http://projecteuler.net/index.php?section=problems&id=26 問題。 1000未満の正の整数dについて、1/dの循環節の長さが最大となるものは何か? 結構悩んだ。下参照。 http://ja.wikipedia.org/wiki/%E5%BE%AA%E7%92%B0%E5%B0%8F%E6%95%B0 素数の倍数同士は…

桁数1000になる最小のフィボナッチ数は何番目

http://projecteuler.net/index.php?section=problems&id=25 問題。 桁数1000になる最小のフィボナッチ数は何番目。 普通に再帰だと遅かったので、辞書を使う。 # -*- coding:utf-8 -*- fib = {1:1,2:1} def Fibonacci(n): if n in fib.keys(): return fib[n…

20世紀に、月始めである日曜日は何日あるか?

http://projecteuler.net/index.php?section=problems&id=19 問題。 20世紀に、月始めである日曜日は何日あるか? # -*- coding:utf-8 -*- import datetime sum = 0 for y in xrange(1901,2001): for m in xrange(1,13): if datetime.date(y, m ,1).weekday(…

経路上の数字の和の最大値

http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2018 本家がエラーってたので日本語訳のwikiから。 問題。 数字を山形に並べて山頂から麓まで降りるとき、経路上の数字の和は最大いくつか? 麓から辿っていくのが簡単に思えた。 下…

碁盤目状路の経路数探索

http://projecteuler.net/index.php?section=problems&id=15 誰もが一度は見たであろう問題。さすがに20*20を手計算で解いた経験はありません。 問題が簡単な分、コードに凝ってみる。再帰+キャッシュ # -*- coding:utf-8 -*- cache = {1:1} def chain(n): i…

ついでに

http://projecteuler.net/index.php?section=problems&id=13 問題。 50桁*100個の整数の総和の頭10桁を求めよ。 # -*- coding:utf-8 -*- s = """37107287533902102798797998220837590246510135740250 46376937677490009712648124896970078050417018260538 74…

三角数の約数の総数

http://projecteuler.net/index.php?section=problems&id=12 問題。 約数の総数が500を超える三角数で最小のものを求めよ。結構手こずった。力技のコードだと計算が終わらなかったので。 約数の総数の導出をいじったら大分現実的な速さになったので、これで…