2009-09-01から1ヶ月間の記事一覧

Project Euler 30

驚くべきことに, 各桁を4乗した和が元の数と一致する数は3つしかない. 1634 = 1^4 + 6^4 + 3^4 + 4^4 8208 = 8^4 + 2^4 + 0^4 + 8^4 9474 = 9^4 + 4^4 + 7^4 + 4^4 ただし, 1=1^4は含まないものとする. この数たちの和は 1634 + 8208 + 9474 = 19316 である.…

Project Euler 29

2 ≦ a ≦ 5 と 2 ≦ b ≦ 5について, a^bを全て考えてみよう: 2^2=4, 2^3=8, 2^4=16, 2^5=32 3^2=9, 3^3=27, 3^4=81, 3^5=243 4^2=16, 4^3=64, 4^4=256, 4^5=1024 5^2=25, 5^3=125, 5^4=625, 5^5=3125 これらを小さい順に並べ, 同じ数を除いたとすると, 15個の…

Project Euler 28

1から初めて右方向に進み時計回りに数字を増やしていき, 5×5の螺旋が以下のように生成される: 21 22 23 24 25 20 7 8 9 10 19 6 1 2 11 18 5 4 3 12 17 16 15 14 13 両対角線上の数字の合計は101であることが確かめられる. 1001×1001の螺旋を同じ方法で生成…

Project Euler 27

オイラーは以下の二次式を考案している: n^2 + n + 41. この式は, nを0から39までの連続する整数としたときに40個の素数を生成する. しかし, n = 40のとき402 + 40 + 41 = 40(40 + 1) + 41となり41で割り切れる. また, n = 41のときは412 + 41 + 41であり明…

Project Euler 26

単位分数とは分子が1の分数である。分母が2から10の単位分数を10進数で表記すると次のようになる。 1/2 = 0.5 1/3 = 0.(3) 1/4 = 0.25 1/5 = 0.2 1/6 = 0.1(6) 1/7 = 0.(142857) 1/8 = 0.125 1/9 = 0.(1) 1/10 = 0.1 0.1(6) 0.166666... という数字であり、6…

Project Euler 25

フィボナッチ数列は以下の漸化式で定義される: Fn = Fn-1 + Fn-2, ただし F_1 = 1, F_2 = 1. 最初の12項は以下である. F_1 = 1 F_2 = 1 F_3 = 2 F_4 = 3 F_5 = 5 F_6 = 8 F_7 = 13 F_8 = 21 F_9 = 34 F_10 = 55 F_11 = 89 F_12 = 144 12番目の項, F12が3桁に…

Project Euler 24

順列とはモノの順番付きの並びのことである. たとえば, 3124は数1, 2, 3, 4の一つの順列である. すべての順列を数の大小でまたは辞書式に並べたものを辞書順と呼ぶ. 0と1と2の順列を辞書順に並べると 012 021 102 120 201 210 になる. 0,1,2,3,4,5,6,7,8,9か…

Project Euler 23

完全数とは, その数の真の約数の和がそれ自身と一致する数のことである. たとえば, 28の真の約数の和は, 1 + 2 + 4 + 7 + 14 = 28であるので, 28は完全数である. 真の約数の和がその数よりも少ないものを不足数といい, 真の約数の和がその数よりも大きいもの…

Project Euler 22

5000個以上の名前が書かれている46Kのテキストファイルnames.txt を用いる. まずアルファベット順にソートせよ. のち, 各名前についてアルファベットに値を割り振り, リスト中の出現順の数と掛け合わせることで, 名前のスコアを計算する. たとえば, リストが…

Project Euler 21

d(n)をnの真の約数の和と定義する。(真の約数とはn以外の約数のことである。) もし、d(a) = b かつ d(b) = a (a ≠ b)を満たすとき、aとbは友愛数(親和数)であるという。 例えば、220の約数は1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110なのでd(220) = 28…

Project Euler 20

n × (n - 1) × ... × 3 × 2 × 1 を n! と表す。 100! の各桁の数字の合計を求めよ。 Mathematica Total[IntegerDigits[100!]] IntegerDigitsは、例えば 346 という数字をいれると、{3, 4, 6} というリストにして返してくれる関数です。 ここに限らず、Intege…

Project Euler 19

次の情報が与えられている。 ・1900年1月1日は月曜日である。 ・9月、4月、6月、11月は30日まであり、2月を除く他の月は31日まである。 ・2月は28日まであるが、うるう年のときは29日である。 ・うるう年は西暦が4で割り切れる年に起こる。しかし、西暦が400…

Project Euler 18

以下の三角形の頂点から下まで移動するとき、その数値の合計の最大値は23になる。 3 7 5 2 4 6 8 5 9 3 この例では 3 + 7 + 4 + 9 = 23 以下の三角形を頂点から下まで移動するとき、その最大の合計値を求めよ。 75 95 64 17 47 82 18 35 87 10 20 04 82 47 6…

Project Euler 16

2^15 = 32768 であり、これの各数字の合計は 3 + 2 + 7 + 6 + 8 = 26 となる。 同様にして、2^1000 の各数字の合計を求めよ。 Mathematica Total[IntegerDigits[2^1000]] これも桁数を考慮してプログラミングする問題なのですが、Mathematicaだとそのまんま…

Project Euler 17

1 から 5 までの数字を英単語で書けば one, two, three, four, five であり、全部で 3 + 3 + 4 + 4 + 5 = 19 の文字が使われている。 では 1 から 1000 (one thousand) までの数字をすべて英単語で書けば、全部で何文字になるか。 注: 空白文字やハイフンを…

Project Euler 15

Starting in the top left corner of a 2×2 grid, there are 6 routes (without backtracking) to the bottom right corner. How many routes are there through a 20×20 grid?2 × 2 のマス目の左上からスタートした場合、引き返しなしで右下にいくルートは …

Project Euler 14

The following iterative sequence is defined for the set of positive integers: n -> n/2 (n is even) n -> 3n + 1 (n is odd) Using the rule above and starting with 13, we generate the following sequence: 13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -…

Project Euler 13

Work out the first ten digits of the sum of the following one-hundred 50-digit numbers. 37107287533902102798797998220837590246510135740250 46376937677490009712648124896970078050417018260538 7432498619952474105947423330951305812372661730962…