2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97・・・といった感じです。よろしくお願いします。
▽2
●
匿名回答3号 ベストアンサー |
こうですかね!
var PrimeFilter = function() {}; PrimeFilter.prototype.filter = function(checkNum){ if (checkNum == 1) { return false; } for(var i=2; i<checkNum; i++) { if (checkNum % i == 0) { return false; } } return true; }; var ConsoleWriter = function() {}; ConsoleWriter.prototype.write = function(s){ console.log(s); }; var NumRange = function(){ this.init.apply(this, arguments); } NumRange.prototype.init = function(start, end, filterObject) { this.list = []; for (var i=start; i<=end; i++) { this.list.push(i); } this.list = this.list.filter(filterObject.filter); }; NumRange.prototype.write = function(writer) { this.list.forEach(function(i){ writer.write(i); }); }; var Application = function() {}; Application.prototype.run = function(){ var primeRange = new NumRange(1, 100, new PrimeFilter()); primeRange.write(new ConsoleWriter()); }; var app = new Application(); app.run();
まあ、拡張性とか考えることは求められていないだろうから、想定される模範解答はおそらくこうなんですけどね。
function checkPrime(checkNum) { if (checkNum == 1) { return false; } for(var i=2; i<checkNum; i++) { if (checkNum % i == 0) { return false; } } return true; }; for (var i=1; i<100; i++) { if (checkPrime(i)) { console.log(i); } }
こんな感じ
素数判定の処理を,再帰アルゴリズムで1文で書いたJavaScriptプログラムは
http://d.hatena.ne.jp/TipsMemo+computer-technology/20140429/p1