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

プロジェクト・オイラー

[アルゴリズム,数学,競技プログラミング,プロジェクト・オイラー]

プロジェクト・オイラー

  ログインページ

これも競プロに役立ちそう(数論)なので、ぼちぼちやっていく。数学的な知識を貯めていきたい。

  • 進捗

  テンプレート

  • Rubyでページと問題文を作成する
# coding: utf-8
require 'nokogiri'
require 'open-uri'

def get_problem(url)
    html = open(url)
    doc = Nokogiri::HTML.parse(html, nil, "UTF-8")

    # 問題タイトル
    nodesets = doc.xpath('//h2')
    title = nodesets.text.gsub(/.*「(.*)」.*/, '「\1」')
    # 問題文
    nodesets = doc.xpath('//p')
    content = nodesets.text
    return title,content
end

N = $stdin.read.to_i

puts "{{category プロジェクト・オイラー}}"
puts ""
puts "!!! プロジェクト・オイラー(#{N.to_s.rjust(3,'0')}-#{(N+4).to_s.rjust(3,'0')})"
puts ""
for n in N..N+4

    title,content = get_problem("http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%20#{n}")

    puts "!! [Problem #{n}|http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%20#{n}]"
    puts "! [Probem|https://projecteuler.net/problem=#{n}] #{title}"
    puts ""
    content.split("\n").each do |line|
      puts "  #{line}"
    end
    puts ""
    puts "! Answer"
    puts ""
    puts "{{layout roll,title:解答"
    puts "* 考えたこと"
    puts "{{list"
    puts "}}"
    puts "}}"
    puts ""
end

  各問題

プロジェクト・オイラー(001-005)

+ プロジェクト・オイラー(001-005)

プロジェクト・オイラー(006-010)

+ プロジェクト・オイラー(006-010)

プロジェクト・オイラー(011-015)

+ プロジェクト・オイラー(010-015)

プロジェクト・オイラー(016-020)

+ プロジェクト・オイラー(016-020)

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

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

プロジェクト・オイラー(026-030)

+ プロジェクト・オイラー(026-030)

プロジェクト・オイラー(031-035)

+ プロジェクト・オイラー(031-035)

プロジェクト・オイラー(036-040)

+ プロジェクト・オイラー(036-040)

プロジェクト・オイラー(041-045)

+ プロジェクト・オイラー(041-045)

プロジェクト・オイラー(046-050)

+ プロジェクト・オイラー(046-050)

プロジェクト・オイラー(051-055)

+ プロジェクト・オイラー(051-055)

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

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

プロジェクト・オイラー(061-065)

+ プロジェクト・オイラー(061-065)

お名前: コメント: