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

プロジェクト・オイラー(056-060)

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

プロジェクト・オイラー(056-060)

  Problem 56

Probem 「もっとべき乗の数字和」

 Googol (10100)は非常に大きな数である: 1の後に0が100個続く.
 100100は想像を絶する. 1の後に0が200回続く.
 その大きさにも関わらず, 両者とも数字和 ( 桁の和 ) は1である.a, b < 100 について自然数 ab を考える. 数字和の最大値を答えよ.

Answer

+ 解答

  Problem 57

Probem 「平方根の近似分数」

 2の平方根は無限に続く連分数で表すことができる.最初の4回の繰り返しを展開すると以下が得られる.1 + 1/2 = 3/2 = 1.5
 1 + 1/(2 + 1/2) = 7/5 = 1.4
 1 + 1/(2 + 1/(2 + 1/2)) = 17/12 = 1.41666...
 1 + 1/(2 + 1/(2 + 1/(2 + 1/2))) = 41/29 = 1.41379...次の3つの項は99/70, 239/169, 577/408である. 第8項は1393/985である. これは分子の桁数が分母の桁数を超える最初の例である.
 最初の1000項を考えたとき, 分子の桁数が分母の桁数を超える項はいくつあるか?

Answer

+ 解答

  Problem 58

Probem 「螺旋素数」

 1から始めて, 以下のように反時計回りに数字を並べていくと, 辺の長さが7の渦巻きが形成される.面白いことに, 奇平方数が右下の対角線上に出現する.
 もっと面白いことには, 対角線上の13個の数字のうち, 8個が素数である. ここで割合は8/13 ≈ 62%である.渦巻きに新しい層を付け加えよう. すると辺の長さが9の渦巻きが出来る. 以下, この操作を繰り返していく. 対角線上の素数の割合が10%未満に落ちる最初の辺の長さを求めよ.

Answer

+ 解答

  Problem 59

Probem 「XOR暗号解読」

 (訳者注: 文字コードの説明は適当です)
 各文字はそれぞれ一意のコードに割り当てられている.
 よく使われる標準としてASCII (American Standard Code for Information Interchange) がある.
 ASCIIでは, 大文字A = 65, アスタリスク (*) = 42, 小文字k = 107というふうに割り当てられている.モダンな暗号化の方法として, テキストファイルの各バイトをASCIIに変換し, 秘密鍵から計算された値とXORを取るという手法がある.
 XOR関数の良い点は, 暗号化に用いたのと同じ暗号化鍵でXORを取ると平文を復号できる点である. 65 XOR 42 = 107であり, 107 XOR 42 = 65である.破られない暗号化のためには, 鍵は平文と同じ長さのランダムなバイト列でなければならない.
 ユーザーは暗号文と暗号化鍵を別々の場所に保存する必要がある.
 また, もし一方が失われると, 暗号文を復号することは不可能になる.悲しいかな, この手法はほとんどのユーザーにとって非現実的である.
 そこで, 鍵の変わりにパスワードを用いる手法が用いられる.
 パスワードが平文より短ければ (よくあることだが), パスワードは鍵として繰り返し用いられる.
 この手法では, 安全性を保つために十分長いパスワードを用いる必要があるが, 記憶するためにはある程度短くないといけない.この問題での課題は簡単になっている.
 暗号化鍵は3文字の小文字である.
 cipher1.txtは暗号化されたASCIIのコードを含んでいる.
 また, 平文はよく用いられる英単語を含んでいる.
 この暗号文を復号し, 平文のASCIIでの値の和を求めよ.

Answer

+ 解答

  Problem 60

Probem 「素数ペア集合」

 素数3, 7, 109, 673は非凡な性質を持っている. 任意の2つの素数を任意の順で繋げると, また素数になっている.
 例えば, 7と109を用いると, 7109と1097の両方が素数である.
 これら4つの素数の和は792である.
 これは, このような性質をもつ4つの素数の集合の和の中で最小である.任意の2つの素数を繋げたときに別の素数が生成される, 5つの素数の集合の和の中で最小のものを求めよ.

Answer

+ 解答

お名前: コメント: