No.30ベストアンサー
- 回答日時:
> P∧2 で、超えるもので、(P+ 2)∧2 ー 1になるのが、なぜ、− 1をするのでしょうか?
これ、おかしな話なんで無視して構わないと思うんですけどねぇ。
適当な素数Pを持ってきて、P + 2が素数だなんて保証はないでしょう。
この本の文面、
> 実際、Pの次の素数Qに対して、Q^2 - 1まで、したがって(P + 2)^2まで進めて構いません。
とか書いてるけど、「したがって」もクソも
・常にQ = P + 2である
なんて保証は当然ありません。
P = 17の時、Q = 19 = P + 2
は成り立つけど、
P = 13の時、P + 2 = 15 => 素数ではない(Qは17である)
あるいは、
P = 19の時、P + 2 = 21 => 素数ではない(Qは23である)
と成り立たないですからね。
あくまでlが5で登録された最後の素数が17だから成り立ってる。全然一般論じゃない。何考えてこんな「如何にも一般論」的な記述してんだかサッパリ分かりません。
だから言ってるでしょ?悪書です。
こんな「おかしな余談」は忘れて構わない。
(そして「悪書」の記述につきあわされているこちらの身にもなってもらいたい)
いずれにせよ、「探索範囲」で考えると、ある素数Qがあったとして、Q^2は当然Qで割り切れるのでQ^2は素数ではないのが明らかです。
そうすると、素数じゃない数はどーでも良いんで、素数の候補としてはそれより1個手前の数までQより小さい素数での探索範囲とする、と言う考え方です。
詳しい話はWikipediaを参考にすること。
試し割り法:
https://ja.wikipedia.org/wiki/%E8%A9%A6%E3%81%97 …
No.38
- 回答日時:
>s=5が初めて出てきた時点で、もう素数の登録数は、
>満杯だから、5行目でいいのではと思ったのです。
>それ以降、s=5は変わりませんから。ご教授下さい。
最初に解っている素数は5のみで、Sはpに登録した
素数の数なので 最初はs=1
7が発見されるとsは2に
11が発見されるとsは3に
13が発見されるとsは4に
17が発見されるとsは5に
増え、これで満杯です。
で、「5行目でいい」とは?
全く意味不明です。
Link: http://codepad.org/Oxfd5gz9
では、以下のURLの29行目とはどういうことでしょうか?
s を表示するよう付け加えて実行してみました(29行目)。
C code - 58 lines - codepad
確かに 5 より大きくはならないようです。
s が L と等しくなった時点で f1 が 1 になり、s に加算する部分が実行されなくなるためでしょう。
LinkのpのURLでなぜ、29行目と括弧されているのかが分かりません。
ご教授下さい。5行目でいいというのは、out put の所で、s=5になっているからです。ご教授下さい。すみませんが。
No.36
- 回答日時:
>なぜ、29行目なのでしょうか?ご教授下さい。
すみませんが29行目は素数と判断できた数とその時の
sを表示しているだけですが
「なぜ」の全体が見えないですね。
No.35
- 回答日時:
>すみません。
>ここです。
>5行目の間違いだと思うのですが。
>Link: http://codepad.org/Oxfd5gz9
5行目は int main( void ) {
だと思いますが・・・
素数が発見されると素数を登録するこのコード
if ( f1 == 1 ) { /* 算法4。35行まで。 */
goto label60;
}
else { /* 算法5。43行まで。 */
s = s + 1;
p[ s ] = n;
if ( s == L ) {
f1 = 1;
}
}
s=Lでf1 が立つともはや素数は p に登録されないのは
一目瞭然だと思います。
余談ですが、BASICのコードの移植とはいえ
メインループが goto で組んであってその中に
普通の for ループがあるのはなかなかシュール(^^;
ループ制御が弱いBASICで goto が多用されるのは
仕方ないですが、さすが C で goto 多用で
スパゲッティされるとくらっと来ます(^^;
No.32
- 回答日時:
> 確かに試し割り法では、(P[i+ 1])∧2 未満であることが成り立ちますが、
> (P[i ])∧2 未満であるとは言っていない
本当にそうですか?
今、P[i]は分かってる、として、じゃあP[i+1]は今この時点で分かってるんですか?
逆じゃないですか?P[i+1]を知りたいのに、どうやって上限(P[i+ 1])∧2を先に知るんでしょうか?
Wikipediaの記述、
> 最も運が悪い場合でも、P[i+1]^2>nを満たすPiまで確かめれば良い。また、Piまで試すことでP[i+1]^2未満のnまでの判定が可能である。
ってのはそういう意味ですよ。
よく読んで下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS HTMLの・要素・属性・属性値 はプログラム言語の「変数」みたいに変更できますか? 5 2022/10/04 05:27
- デジタルカメラ 写真の解像度 1 2022/12/14 18:43
- C言語・C++・C# 画像の画素値を変えるC言語のプログラムで指定された画像の中に白い三角形を右上に表示させるにはどのよう 3 2022/10/30 01:16
- その他(教育・科学・学問) 技術のテストの問題です。やり方を教えてください! 間1.7バイトは何ビットか。 間2.5ビットで表現 4 2023/02/27 00:09
- 数学 情報処理詳しい人!! A4縦のレポート文書に4:3の大きさの横向きの写真画像を貼り付けることにした。 2 2022/12/18 02:30
- 数学 素因数分解は素数になったら辞めるはずなのに、 画像のようにルート24の素因数分解が2の2乗×6と、 5 2023/06/13 22:57
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- 数学 画素数の計算 中高レベルの計算で申し訳ないのですが、下記の問題が分かりません 比率が4:3のA4の横 3 2022/12/17 22:41
- その他(プログラミング・Web制作) 「問題も答えも画像」のクイズを簡単に作れるもの何かありませんでしょうか? 1 2022/05/30 17:29
- 文学 ない 1 2022/06/14 09:22
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DoEventsが必要な理由について
-
GIFアニメをループさせたくない
-
VBAでの一時停止と再開の方法
-
UWSCに制限時間を付けたいです
-
VB.NETで素因数分解のプログラ...
-
Escキーを押すと、中断する時と...
-
流れ図(フローチャート)が分か...
-
Javaの質問です。 この問題の答...
-
C#の勉強を始めたばかりの者です。
-
.htaccessがループしてる?それ...
-
WinAPI「MsgWaitForMultipleObj...
-
エクセルの当番表を作っていま...
-
UWSCの終了の仕方
-
プログラムについて。
-
CSVファイルの特定の行だけを読...
-
WHILE (CHKIMG(”A.bmp”)=FALSE)...
-
ガレージバンド のサンプリング...
-
素数表について。
-
gnuplotについて質問です。
-
合計金額を出すには動的配列?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAでの一時停止と再開の方法
-
UWSCの終了の仕方
-
DoEventsが必要な理由について
-
VBAで3秒だけ時間を止めたい
-
範囲指定したセルを1つずつ飛...
-
Escキーを押すと、中断する時と...
-
DOSコマンドのループ内のTIMEコ...
-
vbscriptでIE自動入力(途中で...
-
乱数の桁数指定、または範囲指定。
-
GIFアニメをループさせたくない
-
プログラミングについて。 1つ...
-
テキストボックスの名前に変数...
-
エクセルの当番表を作っていま...
-
vb.netからエクセル関数書き込み
-
ループフリー
-
CSVファイルの特定の行だけを読...
-
VBA for i=1 to lastrow
-
どなたかこのプログラミングを...
-
Do whileでExitせず、ループの...
おすすめ情報
①はなぜあなたはそう思ったのでしょうか?ご教授下さい。すみませんが。
5, 7, 11, 13, 17の5個までが登録されるようにして。というように考えるとどうなるのでしょうか?
ご教授下さい。すみませんが。
#14の54行で、フラグを立てるのは分かるのですが、この場合のフラグは何なのでしょうか?ご教授下さい。すみませんが。
同じく#14のプログラミングの所です。
すみません。
ここです。
5行目の間違いだと思うのですが。
Link: http://codepad.org/Oxfd5gz9