裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

ワイルドキーボード

2017年02月09日 | ブログラミング

ワイルドキーボード

締め切りが 2017/02/09 10:00 AM なので,その 1 分後に投稿されるように予約

設問
「バイッ!ナッッリ!」
(01の2進数だけで構成された文字列を、ASCII文字列のバイナリ表記とみなして、元のテキストに戻して欲しい。)

【入出力サンプル】
例1)
STDIN
011000010110001000001010

STDOUT
ab

例2)
STDIN
01100001000010100110001000001010

STDOUT
a
b

========================================

R は簡単でいいなぁ
関数が入れ子になるのもカッチョイイと思う
readLines(file("stdin", "")) は,標準入力から入力する

cat(intToUtf8(matrix(as.integer(unlist(strsplit(readLines(file("stdin", "")), ""))), ncol=8, byrow=TRUE) %*% 2^(7:0)))

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

スーパー素数

2017年02月09日 | ブログラミング

スーパー素数

締め切りが 2017/02/09    8:00 AM なので,その 1 分後に投稿されるように予約

仕様
標準入力で指定された数値を元に N 番目のスーパー素数を表示してください。

スーパー素数とは
スーパー素数とは素数の数列の素数番目の要素で構成される数列である。


3, 5, 11, 17, 31, 41, 59, 67, 83, 109, 127, ...

標準入力
数値(1-2017)の範囲の整数が入力されます

標準出力
標準入力番目のスーパー素数を出力する

その他の仕様

・標準入力の末尾には改行があります
・標準出力の末尾に改行をつけてください
・標準入力の仕様で説明した内容以外の入力は行われません(不正入力に対するチェックは不要)

==========================

f = function(N, mx = 2e+05) {
    tbl = 1:mx
    tbl[1] = 0
    for (i in 2:floor(sqrt(mx))) {
        if (tbl[i]) {
            mx2 = mx%/%i
            tbl[2:mx2 * i] = 0
        }
    }
    prime = tbl[tbl > 0]
    a = prime[prime]
    b = a[!is.na(a)]
    b[N]
}
cat(f(2), "\n") # 5
cat(f(30), "\n") # 617  
cat(f(2017), "\n") # 194591

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村