processingの課題が分からない助けて

  • 1二次元好きの匿名さん22/01/13(木) 00:35:14

    processingを使って1234から120455までの間の素数の数を求めるプログラムを作れって課題が出たんだけどどうやって数えたらいいのか全く分からないです
    ネットに転がってるの色々試してみたけど範囲内の素数がずらっと並ぶ奴しかありませんでした(範囲内の素数の数が分かるよ!ってやつもあったけどそれもずらーって並ぶ奴でした)

    これまでのグループワークで一緒になった友達に頼っても分かんねぇだろ?俺も分かんねぇ()って感じで全滅
    ・・というわけで助けを求めてここに書き込みました

  • 2二次元好きの匿名さん22/01/13(木) 00:35:54

    何故ここで聞いたのだ、教授に聞きなよぉ

  • 3二次元好きの匿名さん22/01/13(木) 00:36:54

    どういうもんかしらねぇ
    ずらっと並ぶんなら並んだやつの個数を単純に数えればいいんちゃうの?

  • 4二次元好きの匿名さん22/01/13(木) 00:37:04

    final int NUM1 = 1234;
    final int NUM2 = 120455;

    void setup() {
    int iMax = NUM2;
    boolean[] a1lBox = new boolean[iMax + 1];
    for (int i = 2; i あ a1lBox.length; i++)
    a1lBox[i] = true;
    int p = -1;
    for (int i = 2; i * i あ a1lBox.length; i++) {
    if (a1lBox[i]) {
    p = i;
    for (int j = p; j * p あ a1lBox.length; j++)
    a1lBox[j * p] = false;
    }
    }
    for (int i = 2; i あ a1lBox.length; i++) {
    if (a1lBox[i])
    if(NUM1あ=i){
    int count = i;
    println("Number of Prime Number between", NUM1, "and", NUM2, "is", count);
    }
    }
    }

  • 5二次元好きの匿名さん22/01/13(木) 00:38:44

    「素数の数」みたいな変数を用意して素数が見つかるたびに1足していけばいいんでないの

  • 6二次元好きの匿名さん22/01/13(木) 00:38:59

    とりあえず今書いてるやつ
    <が使えないので「あ」に置き換えました、見づらくてごめんなさいー・・

  • 7二次元好きの匿名さん22/01/13(木) 00:39:07

    その言語は知らんが素数判定できるなら数えるだけでは?
    素数判定forで回してるならifでカウント用変数+1みたいな

  • 822/01/13(木) 00:44:27

    >>2

    うーん正論


    >>7

    それでできるんだろうなーとはなんとなく分かってたんですけど、動いてる理屈は分からんけど動いてるからヨシ!みたいな感じで一年通しちゃったから付け足し方が分からないっす()

  • 9二次元好きの匿名さん22/01/13(木) 00:46:53

    printlnしてっとこの上にcount=count+1
    final int のとこにint count=0の宣言おけばいいんじゃない
    どんな言語なんだろう

  • 10二次元好きの匿名さん22/01/13(木) 00:48:00

    全角なら大丈夫じゃなかったっけ?
    final int NUM1 = 1234;
    final int NUM2 = 120455;

    void setup() {
    int iMax = NUM2;
    boolean[] a1lBox = new boolean[iMax + 1];
    for (int i = 2; i < a1lBox.length; i++)
    a1lBox[i] = true;
    int p = -1;
    for (int i = 2; i * i < a1lBox.length; i++) {
    if (a1lBox[i]) {
    p = i;
    for (int j = p; j * p < a1lBox.length; j++)
    a1lBox[j * p] = false;
    }
    }
    for (int i = 2; i < a1lBox.length; i++) {
    if (a1lBox[i])
    if(NUM1<=i){
    int count = i;
    println("Number of Prime Number between", NUM1, "and", NUM2, "is", count);
    }
    }
    }

  • 1122/01/13(木) 00:48:12
  • 12二次元好きの匿名さん22/01/13(木) 00:48:13

    エラトステネスの篩でもなんでもいいから総当りで調べてカウントアップするだけでは?


    >>9

    独自言語っぽい

  • 13二次元好きの匿名さん22/01/13(木) 00:56:14

    >>11

    このサイトで素数のカウントやってるやん

    これ真似たら何とかなるんじゃないの

  • 14二次元好きの匿名さん22/01/13(木) 00:57:30

    このレスは削除されています

  • 15二次元好きの匿名さん22/01/13(木) 00:58:05

    素数の識別出来てるならそれをループさせて素数の判定出るたびに適当な変数を1増やせばいいだけでは?

  • 16二次元好きの匿名さん22/01/13(木) 00:59:29

    これ現状だとどうなるんだ
    該当する素数を表示するだけな感じ?

  • 17二次元好きの匿名さん22/01/13(木) 01:05:01

    >>16

    >>16

    こんな感じっす



    >>13

    1行目から何かエラー出たからこっちをメインにするのは辞めてここに挙げたコードにカウント要素を付けたそう→どうやって付け足せば良いんだ・・?って感じです

  • 18二次元好きの匿名さん22/01/13(木) 01:05:40

    ざっと見た感じ
    全部の数値の番号のBoolean配列にtrue埋めして
    そこに素数でなかったらfalseを入れてるっぽいね

    trueの数数えればいいだけじゃん
    エラーになってなきゃ

  • 19二次元好きの匿名さん22/01/13(木) 01:06:40

    println("Number of Prime Number between", NUM1, "and", NUM2, "is", count);

    これがforループの内側にあるから素数が見つかるたびに出力してることになるけど…いいんスかこれ

  • 20二次元好きの匿名さん22/01/13(木) 01:10:34

    countを素数の数として表示しようとしてる?
    そうすると途中の
    int count = i;
    がおかしなことになってるけど

  • 21二次元好きの匿名さん22/01/13(木) 01:15:33

    >>20

    そうやっちゃってました・・

    >>19

    だからずらーってなるんですね

  • 22二次元好きの匿名さん22/01/13(木) 01:17:04

    ざっと読んだ感じ2から順に素数判定していってNUM1より大きいやつからNUM2までを全部出力してる感じか
    printlnのところを消して適当な変数でカウントすれば解決じゃね?

  • 23二次元好きの匿名さん22/01/13(木) 01:18:51

    >>21

    >>9知らんけどコレ試してよ

    printlnはforループの外においてね

  • 24二次元好きの匿名さん22/01/13(木) 01:22:06

    後半が
    println("Number of Prime Number between", NUM1, "and", NUM2, "is", count);
    }
    }
    }
    だけど
    }
    }
    println("Number of Prime Number between", NUM1, "and", NUM2, "is", count);
    }
    の誤りだと考えられる
    表示を一回にしたいならループ終了後に出力するべきなんだよね

  • 25二次元好きの匿名さん22/01/13(木) 01:27:24

    返信遅れてごめんなさい

    >>20さんのいう問題は大丈夫なんでしょうか

  • 26二次元好きの匿名さん22/01/13(木) 01:28:18

    countを使って数えるならcount=0じゃないとダメじゃね?

  • 27二次元好きの匿名さん22/01/13(木) 01:29:24

    >>25

    forループの中のint countの宣言消せや

  • 28二次元好きの匿名さん22/01/13(木) 01:29:40

    コピペしてるだけでどの文字がどれでどういう処理でこうなってるか分かってない感がある
    それ分からんと自分でコード書けんぞ

  • 29二次元好きの匿名さん22/01/13(木) 01:30:21

    こうじゃないの
    数がでかいから合ってるかは知らんが

  • 30二次元好きの匿名さん22/01/13(木) 01:30:27

    ああ…完璧だよ
    int count = i;
    が残っている点を除いてね

  • 31二次元好きの匿名さん22/01/13(木) 01:38:12

    >>30

    うおおおお!!!!!形になりました

    割と短い間隔で死ぬほどずらっとならんでたしそれぐらいかもしれない、調べたらわかるかな?

  • 32二次元好きの匿名さん22/01/13(木) 01:38:38

    安価先間違えた、ごめんなさい

  • 33二次元好きの匿名さん22/01/13(木) 01:40:35

    >>31

    調べてもたぶんわかんねーなこれ・・

    てか検索機能に同じ課題やってる人のヤフー知恵袋あって笑う、いやどの立場から笑ってんねんって話だけど

  • 34二次元好きの匿名さん22/01/13(木) 01:42:26

    このレスは削除されています

  • 3522/01/13(木) 01:42:59

    とりあえず皆様ありがとうございましたーー!!

  • 36二次元好きの匿名さん22/01/13(木) 01:43:45

    おつかれー

  • 37二次元好きの匿名さん22/01/13(木) 01:44:44

    10万までの素数がおおよそ1万個だから多分合ってる

オススメ

このスレッドは過去ログ倉庫に格納されています