合成数列の和アドベントカレンダー Advent Calendar 2018 の 7 日目です。
ルール
- 入力として正の整数 N を与えたら 4 から始まる 合成数 の数列の 1 番目から N 番目からの合計を出力してください
- N は最大で 100 とします
プログラム(なでしこ)
コマンドライン引数を処理する事がすごく面倒だった難しかった為、ファイルを介して入力しています。
composite.nako3
indataはファイルを読む("composite.dat")
numは4
compositesは0
sumは0
●(x)素数判定とは
もし、x<2ならば
それは0
戻る。
ここまで。
もし、x=2ならば
それは1
戻る。
ここまで。
もし、x%2=0ならば
それは0
戻る。
ここまで。
iは3
(i*i≦x)の間
もし、x%i=0ならば
それは0
戻る。
ここまで。
iはi+2
ここまで。
それは1
戻る。
ここまで。
(composites < indata)の間
もし、素数判定(num)が1でなければ
compositesにcomposites+1を代入
sumにsum+numを代入
ここまで。
numにnum+1を代入
ここまで。
sumを表示
実行環境の準備
今回はNode.js上で動かしてみました。
$ npm install -g nadesiko3
出力例
$ echo 2 > composite.dat && cnako3 composite.nako3
10
$ echo 4 > composite.dat && cnako3 composite.nako3
27
$ echo 10 > composite.dat && cnako3 composite.nako3
112
$ echo 100 > composite.dat && cnako3 composite.nako3
7059
メモ
この問題は ずんだ問題 の番外編です