Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

改造できない

今はこの演習問題が解けなくて困っています。
「エラトステネスのふるい」のプログラム(Prime.java)を、途中経過が分かるよう
次のように改良せよ。具体的には、以下のようにプログラムを改造せよ。

2の倍数をふるいにかけた直後の配列aの状態を画面に表示、
3の倍数をふるいにかけた直後の配列aの状態を画面に表示、
4の倍数をふるいにかけた直後の配列aの状態を画面に表示、

N/2 の倍数をふるいにかけた直後の配列aの状態を画面に表示
改造後のプログラムと、実行結果を示せ(N=30程度で良い)。正しく動いている
という説明も述べよ。
class Prime {
   public static void main(String args[]){
        int N = 1000;
int i,j;
int a[] = new int[N+1];
for(a[1]=0,i=2;i<=N;i++){
a[i] = 1;}
for(i=2;i<=N/2;i++){
for(j=2;j<=N/i;j++){
a[i*j] = 0;
}}for(i=1;i<=N;i++){
if(a[i] > 0) {
System.out.print(i+" ");}}
System.out.println();}}
どうやって改造すれば良いのか全然分かりません。
わかる人がいましたら教えて下さい。 

5

回答

8348

閲覧

5件の回答

評価

0

丸投げ?

評価

0

期末どころか、始まったばかりの講義でこのザマかよ。

評価

0

私自身初心者なのですが、意見を書かせていただきます。

まず、どこまでの知識があるのでしょうか?
「エラトステネスのふるい」?
アルゴリズム?
javaの文法?

どこがわからないのかをはっきりさせないと、掲示板の先輩方も回答に困ると思います。
それがはっきりした上で、もう一度質問すると皆さんもやさしく答えてくださると思いますよ?

評価

0

ほかのところで同じ質問がありましたので、
そちらに回答を載せました。
(そこは丸投げ歓迎な場所でしたので。

ここの掲示板の趣旨とは外れてしまっていますね。

評価

0

何か見たことあるな、この課題。
っていうか、同じだな。

これを解決するには、
1.先生にすがる。
2.先輩にすがる。
が1番早いでしょ。

ちなみに友人は方法2でこの課題をパスしましたよ。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。