匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

1~100までの間の素数を出力するプログラムをJavaScriptで作るにはどうすればよいのですか。

課題で出たのですが、模範的な解答例を確認しておきたいです。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/04/28 22:54:37
  • 終了:2014/05/05 22:55:06
匿名質問者

質問者から

匿名質問者2014/04/28 23:05:51

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・・・といった感じです。よろしくお願いします。

ベストアンサー

匿名回答3号 No.2

匿名回答3号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2014/04/29 09:43:27

こうですかね!

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); }
}
匿名質問者

おそらくconsole.logで確認するまでで問題無いとは思いますが、上記の解答例も個人的なスキルアップのために参考にさせていただきます。ありがとうございます。

2014/04/29 09:45:44

その他の回答(2件)

匿名回答2号 No.1

匿名回答2号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2014/04/28 23:33:11

匿名質問者

ありがとうございます。解説もついているのでこれで出力する仕組みを理解してみようと思います。

2014/04/28 23:48:52
匿名回答3号 No.2

匿名回答3号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2014/04/29 09:43:27ここでベストアンサー

こうですかね!

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); }
}
匿名質問者

おそらくconsole.logで確認するまでで問題無いとは思いますが、上記の解答例も個人的なスキルアップのために参考にさせていただきます。ありがとうございます。

2014/04/29 09:45:44
匿名回答4号 No.3

匿名回答4号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2014/04/29 12:04:58

こんな感じ

素数判定の処理を,再帰アルゴリズムで1文で書いたJavaScriptプログラムは
http://d.hatena.ne.jp/TipsMemo+computer-technology/20140429/p1

匿名質問者

いろいろやり方がありますね。こちらも勉強になりますね。合わせて参考にさせていただいきます。ありがとうございます。

2014/04/29 17:49:55

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません