トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

プロジェクト・オイラー(021-025)

[プロジェクト・オイラー]

プロジェクト・オイラー(021-025)

  Problem 21 「友愛数」

Probem

Amicable numbers = 友愛数

Divisor = 約数

   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) = 284 である.
   また, 284 の約数は 1, 2, 4, 71, 142 なので d(284) = 220 である.
   
   それでは10000未満の友愛数の和を求めよ.

Answer

+ 解答

  Problem 22 「名前のスコア」

Probem

   5000個以上の名前が書かれている46Kのテキストファイル filenames.txt を用いる. まずアルファベット順にソートせよ.
   
   のち, 各名前についてアルファベットに値を割り振り, リスト中の出現順の数と掛け合わせることで, 名前のスコアを計算する.
   
   たとえば, リストがアルファベット順にソートされているとすると, COLINはリストの938番目にある. またCOLINは 3 + 15 + 12 + 9 + 14 = 53 という値を持つ. よってCOLINは 938 × 53 = 49714 というスコアを持つ.
   
   ファイル中の全名前のスコアの合計を求めよ.

Answer

+ 解答

  Problem 23 「非過剰数和」

Probem

Perfect number = 完全数

Deficient = 不足数, Abundant = 過剰数

   完全数とは, その数の真の約数の和がそれ自身と一致する数のことである. たとえば, 28の真の約数の和は, 1 + 2 + 4 + 7 + 14 = 28 であるので, 28は完全数である.
    
   真の約数の和がその数よりも少ないものを不足数といい, 真の約数の和がその数よりも大きいものを過剰数と呼ぶ.
    
   12は, 1 + 2 + 3 + 4 + 6 = 16 となるので, 最小の過剰数である. よって2つの過剰数の和で書ける最少の数は24である. 
   数学的な解析により, 28123より大きい任意の整数は2つの過剰数の和で書けることが知られている. 
   2つの過剰数の和で表せない最大の数がこの上限よりも小さいことは分かっているのだが, この上限を減らすことが出来ていない.
    
   2つの過剰数の和で書き表せない正の整数の総和を求めよ.

Answer

+ 解答

  Problem 24 「辞書式順列」

Probem

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

Answer

+ 解答

  Problem 25 「1000桁のフィボナッチ数」

Probem

   フィボナッチ数列は以下の漸化式で定義される:
   
   Fn = Fn-1 + Fn-2, ただし F1 = 1, F2 = 1.
   
   最初の12項は以下である.
   
   F1 = 1
   F2 = 1
   F3 = 2
   F4 = 3
   F5 = 5
   F6 = 8
   F7 = 13
   F8 = 21
   F9 = 34
   F10 = 55
   F11 = 89
   F12 = 144
   
   12番目の項, F12が3桁になる最初の項である.
   
   1000桁になる最初の項の番号を答えよ.

Answer

+ 解答

names.txt
お名前: コメント: