- ベストアンサー
javaに詳しい方、教えてください
2から700までの素数表をエラトステネスのふるいを用いて作れ、という課題を出されました 言語はHTML、javaです。 とりあえず作ってみたのですが実行できません… どこが違うのか、ご指摘お願いいたします。 <htm> <body> <script language="JavaScript"> n2=2*700; /* initialize the table. */ for(i=0; i < n2; i++) tab[i] = 0; /* main loop */ for(i=2; i < n; i++) if(tab[i] == 0) for(k=i*i; k < n2; k+=i) tab[k] = 1; </script> </body> </htm>
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まっとうにやるならこんな感じですかねぇ。 <htm> <body> <script language="JavaScript"> var n=700; var tab=new Array(); //初期化 for(var i=2; i <= n; i++) tab[i]=0; //削除 for(var i in tab){ for(var j=i;j*i<=n;j++){ delete(tab[i*j]) document.write(i+"x"+j+"="+(i*j)+" "+"<br>"); } } //素数表示 for(var i in tab) document.write(i+" "); </script> </body> </htm>
その他の回答 (3)
#1です。 もう、結果は出ているみたいですが…。 「700でいいんでしょうか?」 変数の中身は、入れたものしか入っていません。 nには、何も代入していないので「不定」です。 「結果を表示させる部分、とは…?」 #3さんの回答にあるとおり、計算しただけでは画面に表示されません。 「画面に結果を表示させる機能を追加しましょう。」という意味でした。
#1です。 表示させる部分が全くありません。 結果を表示させないと何も判りませんよ。 また、「Java」と「JavaScript」は名前は似ていますが全く違う言語です。 問題を「Java」で回答するのではないのですか?
お礼
Javascriptのほうだと思います。 結果を表示させる部分、とは…? すみません、さっぱりわかりません
とりあえず、 「for(i=2; i < n; i++)」 n には、何が入っているでしょう?
補足
すみません…実は文系で間違えて語の授業をとってしまい 何もわからないんです… 700でいいんでしょうか?
お礼
ありがとうございます! 説明までつけて頂いて、本当に感謝です!!