• ベストアンサー

素数の問題です。 11から1231までに存在する素数の個数を求めるやり

laputartの回答

  • laputart
  • ベストアンサー率34% (288/843)
回答No.3

EXCELを使ってマクロを作ると、こんな感じです。 セルB4に素数の数がカウントされます。 B5~は素数を順に表示します。 Sub Macro1() 'N0 = 最小の数 (この場合11をセルB1に入力 'N1 = 最大の数 (セルB2に入力 'CT = 素数の数カウント 'N = 調べている数字 (N0 から N1まで) 'I = 2~ √Nまで順に検査 割り切れれば、OK=1 にする。そうでない場合は素数 ' 割り切れる判定は N/I = INT(N/I) になるかどうか 'L = 素数を表示する行番号 Dim N0, N1, CT, OK, L As Integer CT = 0 L = 5 N0 = Range("B1").Value N1 = Range("B2").Value OK = 0 If Not IsNumeric(N0) Then OK = 1 If Not IsNumeric(N1) Then OK = 1 If OK = 1 Then MsgBox ("最小数、最大数を入力してください") End End If For N = N0 To N1 OK = 0 i = 2 Do Until i > Int(Sqr(N)) If N / i = Int(N / i) Then OK = 1: Exit Do i = i + 1 Loop If OK = 0 Then CT = CT + 1 Range("B4").Value = CT Z = "B" & CStr(L) Range(Z).Value = N L = L + 1 End If Next N End Sub

tattatatta
質問者

お礼

ありがとうございます。

関連するQ&A

  • 1億までに存在する素数の個数

    1億までに存在する素数の個数は5761455個ということですが、自分のPC(クロック周波数1.6GHz)、言語VBA、よく知られている単純なアルゴリズムで調べると100万までに存在する素数の個数は87498個(所要時間50秒)、1000万までに存在する素数の個数は664579個(所要時間20分)、1億までに存在する素数の個数は6時間かけても、終わらなかったので、強制終了して、インターネットで調べました。ところで、mathematicaでprime(n)、primeQ(n)、primePi(n)という関数があり、1億までに存在する素数はprimePi(100000000)=5761455とすぐ答えが出るそうですが、興味をもったのはその5761455個目の素数です。その答えはprime(5761455)で出るのでしょうが、それが知りたいです。その数は8桁ですか、7桁ですか。また、prime(n)で調べないとしたら、どんなアルゴリズムで調べるのですか。

  • 不等式にあてはまる数の個数について教えてください

    こんにちは。 不等式にあてはまる数の個数の求め方について教えてください。 問題: 10 < x < 20 のとき、x にあてはまる数の「個数」を求めます。ただし、x は整数です。 答え: x にあてはまる数の個数は、9個 (11, 12, 13, 14, 15, 16, 17, 18, 19) です。 これを求める式は、「(20-10)+(-1) = 9 (個)」のはずです。 ・このとき、なぜ「-1」をするのか教えてください。 ・また、他の考え方があるときはその考え方を教えてください。 できたら、中学校卒業程度のレベルで教えていただけるとうれしいです。 よろしくお願いします。

  • 場合の数 個数の処理 わかんねぇです><;;

    こんばんは。 ここへの投稿は初めてなんですが いきなり聞きたい事があります。 私は高1で 今数学で 集合とか場合の数とか個数の処理とか やってるわけです。 それで、次の問題がどうしても分からないので、なるべく私でも分かるように説明して下されば有り難いです・・・! ・1から200までの整数の集合を全体集合とするとき、次の集合の要素の個数を求めよ。 「4で割り切れるが、6で割り切れない数の集合」 と、いうわけで自分で計算してみたんですが 4の倍数=A, 6の倍数=Bとして n(A)=50 n(B)=33 ここからが分からないんです。 4で割り切れるが、6で割り切れない・・とは AからAとBの共通の数を引けばいいのですか? そうすると50-8=42となるのですが その問題集の答えは34になると書かれてるんですよ。 どうしたら34になるのかサッパリなのですOTL もしや問題集の答えが間違っているとか・・・? ぜひ分かる人は教えて下さい。 お願いします。

  • 三角比の個数(数?)のところでわからないんですが、

    三角比の個数(数?)のところでわからないんですが、 以前、問題の解き方が分からなくて質問させていただき、 解けたのですが、 答えにイコールがつく場合とつかないの場合の違いがわかりません(汗 (最後につかないのは頂点だからだと思うんですが、  最初の方が分かりません) この前質問させて貰った問題の答えは 1/4+√3/2≦a<5/4 で 他の問題の答えを見たら √3<a<7/4 となってました。 何が違うのでしょうか??

  • トマトの個数の問題

    「青果店で1個80円のリンゴと1個50円のトマトをいくつか買った。店員がリンゴとトマトの個数を入れかえて計算してしまったため、自分で計算した金額よりも少なくなってしまったが、新たにトマトを3個追加で買うことで自分で計算した金額と同じになった。全部で買ったリンゴとトマトの数は16個になった。当初、トマトはいくつ買う予定だったか求めよ。」 上記の問題を現在解いているのですが、解き方が分からずに困っています。答えは「4個」とあるのですが、解き方が載っていないのでわかりません。 自分で方程式を立てて解いてみようと思ったのですが、個数や金額など数値が明らかにされていないものが多いため、ごちゃごちゃになってしまい、うまい方程式が立てられませんでした。 分かる方がいましたら力を貸していただけないでしょうか。

  • 全射の個数を求める問題

    Xm→Xm-2 の個数を求めよという問題なんですが、よくわかりません。Xm-1の場合はmC2*(m-1)!という答えだったのですが、これもいまいちよくわかりません。 よろしくお願いします。

  • 数学 n!に含まれる素因数の個数

    15!が2のk乗で割り切れるような自然数kの最大値を求めよ。」という問題なんですが、 解説を見ても、なぜその答えになるのかが分かりません。 解説から、1から15までの自然数の中に2の倍数と4の倍数と8の倍数の個数の合計(k=11)から求められることは分かるのですがなぜそう計算するのかの理屈がいまいち理解できないんです 教えていただけると嬉しいです!

  • 素数について

    素数は無限に存在しますが、その分布の仕方に興味があります。勿論直感的に、大きくなるほど、出現頻度は小さくなるのでしょうが、この範囲では予想外に多いとか、逆に、ある範囲だと、殆どないとかあるんでしょうか?また、素数の現れ方について、何かわかっていることがあるのでしょうか?欲張ってすいません。もうひとつ、私のPC(クロック周波数1.6GHz)で、VBA簡単なマクロを使って、100万までに存在する素数の個数が78498個であることが50秒で計算しましたが、2桁増やして1億までに存在する素数の個数を調べようとしたら、2時間計算しても答えが出ませんでした。途中で強制終了しました。VBAで別のロジックでマクロを組めば1分位で計算できないものでしょうか。「博士の愛した数式」という映画のなかで、家政婦さんの電話番号が偶然、1億までに存在する素数の個数に等しいというシーンがあって、確かめたいと思いました。

  • 集合の要素の個数の問題について

    「100以下の自然数で、  36と、1以外の公約数をもたない数の個数を求めよ」 ・・・の問題があったんですが 問題の意味がわかりません。 詳しく教えてくれるとありがたいです! よろしくおねがいしますm(_ _)m

  • 900と1080の公約の個数を求める問題

    900と1080の公約の個数を求める問題で苦戦しています。 回答を見てみたものの、因数分解(?)をするまでは理解できたのですが、 その後が分からなくて困っています。 解説より 900=2の二乗×3の二乗×5の二乗 1080=2の三乗×3の三乗×5 公約数の個数は、3×3×2=18(個) と書かれています。 因数分解(?)の後の3×3×2という式はどこから成り立ってくるのでしょうか。