• 締切済み

エラトステネスのふるい java

下の問題がわかりません。どうかよろしくお願いします 問1 2以上n以下の自然数のうち、素数だけを選び出し、prime.txtという名称のファイルに書出したい。ただし、nの最大値は2^15 - 1 = 32767とする。 これをエラトステネスのふるいによって書きなさい 問2 上記の方法で作成したprime.txtを利用して、キーボードから入力する適当な自然数lを素因数分解するプログラムを作成しなさい。

  • Java
  • 回答数1
  • ありがとう数0

みんなの回答

  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.1

何がわからないのですか? エラトステネスのふるいの方法については検索すればたくさん出てきます。 まる投げの質問は忌避されます。 自分でやってみてわからないところを質問するようにしてください。

関連するQ&A

  • C言語 エラトステネスのふるい ポインタ

    C言語のプログラミングなのですがどなたか教えて頂けませんか。(説明も) エラトステネスのふるいを用いて,10000 までの自然数に素数がいくつあるかを表示するプログラムを作れ。 ただし , 配列は用いず, ポインタを用いること メモリの確保には malloを使うこと よろしくお願いいたします。

  • エラトステネスのふるい(素数)についての疑問

    今、家にある中学の参考書を読みながら、中学数学を勉強しているものです。その中の素数についての一番最初の問題で、 次のうちから、素数を選べ。 1 6 13 25 51 79 87 91 という問題があり、その解法の一つでエラトステネスのふるいというもの(2から順に自然数を書き、2を残して2の倍数を消し、3を残して3の倍数を消し、5を残して5の倍数を消す、以下同様にして求める…という方法)があるのですが、上の問題でずっとエラトステネスのふるいを使いながら合成数を消していくと、11の倍数を消すところで、「13、79は11で割り切れず、13÷11、79÷11ともに商が11より小さくなるから素数である。」と参考書にあり、そこでふるいをかける作業は終わっています。 この参考書(特に、"13÷11、79÷11ともに商が11より小さくなるから素数である。"というところ)のこの部分と、ずっとにらめっこをしてきたのですが、何故「13÷11、79÷11ともに商が11より小さくなるから素数である」と言い切れるのか、分かりませんでした…。 少なくとも13は、次に11の倍数となる数である11×2=22の間に13が存在しないから素数、と言い切れる感じはするのですが、79だと、たとえ11で割り切れなくても、13、17で割り切れるかもしれない…(もちろん実際そんなことはないのですが)、と、感覚的にそう思ってしまいます。そして、「13÷11、79÷11ともに商が11より小さくなるから素数である」を言いかえれば、「商が11より大きくなる場合は、素数でない可能性がある(121以降の数であれば、たとえ今の時点で11で割り切れなくても、素数でないかもしれない)」というのも、よく分かりません…。 そんなこんなで、このふるいが11で終わっている理由が分からないのです。 馬鹿みたいな問題かもしれないのですが、頭が堅くて、分からなくて困っているので、良かったら教えていただければ嬉しいです…。

  • すばやく素因数分解する方法は?

    「暗号解読」(サイモン・シン(著)青木薫(訳) 新潮社)という本を読んで、急に素数のことに関心を持ちました。 数十桁もある数(合成数)を素因数分解するのは、えらく時間がかかることが書かれていました。 中学生が計算する素因数分解や、「エラトステネスのふるい」のほかに、手計算や計算機を使って、合成数から素数を見つける方法(素因数分解)を知りたいので、ご存知の方教えてください。 できれば、計算機科学における現在、最速の素因数分解の方法(アルゴリズム)を知りたいです。

  • 平方根

    (1) nは自然数で66/nが素数となる。 このようなnは何個あるかについて まず66を素因数分解すると66=2*3*11 nは自然数なので1,2,3,4…と代入するのでしょうか? (2) √(3n)の値が自然数となるような自然数nを考える。 nの値のうちもっとも小さいものと2番目に小さいものを求めるのですが どうして3*(自然数)^2について考えるのでしょうか?

  • javaで整数nを入力し、それが素数かどうか判断するプログラムを拡張し

    javaで整数nを入力し、それが素数かどうか判断するプログラムを拡張して、入力した数を素因数分解するプログラムを作成したしたいのですが、まったくわかりません。誰か教えてください。お願いします!!

  • 数字の件で

    2m∧2 = n∧2 ・・・(1)とする。 ※m,nは自然数 m,nを素因数分解した時の素数の個数を それぞれs,tとすると、(1)式を素因数分解 した時の素数の個数は、 2*s+1,2tになる。・・(2) という、定理があるのですが、 どうやって(2)式が導かれる のかわかりません。

  • 素因数分解でわからない問題があります。教えていただ

    けますでしょうか。 勉強していて、下記の問題がどうしてもわかりません。 解答はついているのですが、考え方がわかりません。 教えていただけないでしょうか? 問い 56にできるだけ小さい自然数をかけて、ある整数の二乗にしたい。どんな数をかければよいか? 素因数分解はできるのですが(2の3乗X7)、その後の考え方がわかりません。 ちなみに答えは2X7=14 です。 解説に、56=2の3乗x7=2の2乗x(2x7) よって、2x7=14とありますが、 この解説がまったく理解できません。 2x7=14が何を意味するのかがわかりません。 どう考えればよいのでしょうか? 同じく 360を自然数でわって、ある整数の2乗にしたい。どんな数でわればよいか? という問いも、素因数分解から先の考え方がわからず、解けません。 (答え10,40,90,360)。 どなたか 解き方(考え方)を教えていただけますでしょうか。

  • c言語 至急お願い致します

    10000以下の自然数のうち素因数分解を行ったときにその因子の数が最多となる数を求め,その数,因子の数,素因数分解の結果を表示するプログラムを作成して下さい. 出力形 8192 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 因子数:13

  • 高校数学 最大公約数,最小公倍数

    問題. 3つの自然数45,63,n の最大公約数が9,最小公倍数が3150であるとき,nを求めよ なんですが,いろいろ素因数分解とかやってみて考えてみたのですが解けません. どなたか,解説してほしいです. よろしくお願いします..

  • RSA暗号が破れる素因数分解についてです。

    自然数 N を、√N (= Nの平方根)未満の自然数であって、末位の数字が1,3,7,9のもののうち、小さいもの順のものどもで以て、割ってゆき、N を素因数分解する計算の、時間計算量のオーダーは、 どれ位のものでしょうか。

専門家に質問してみよう