No.2ベストアンサー
- 回答日時:
1.素数の一覧表を作る
1)1000個の整数の配列を作る
2)0で初期化
3)2番目、4番目……と2の倍数毎に '1' をセットする
これで、偶数にマークを付けることができた。
4)3番目、6番目……と3の倍数毎に、'1' をセットする
これで、3の倍数にマークを付けることができた。
5)以下、4の倍数、5の倍数~32の倍数までマークを付ける
以上で、マークのついてないものが、素数
2.和を求める数をnとする。
1)n未満で素数であることがわかっている数字をひとつ選び出す
1.で求めた素数リストを使う
2)その数字をaとする
3)n-a が素数かどうか調べる
・n-aが素数なら、n=a+(n-a)に分解できた。
・n-aが素数でないなら、次のaを選び直す
No.1 の回答にあるのと同じ流れですが。
それと、素数リストを作るあたりは、「なぜ32までなのか」がポイントです。さらに、かなり無駄な処理が混ざっています。
No.3
- 回答日時:
No.2 訂正です。
1.素数の一覧表を作る
1)1000個の整数の配列を作る
2)0で初期化
3)4番目、6番目……と2の倍数毎に '1' をセットする
(2番目=2は素数なので、ここにはマークを付けない)
これで、偶数にマークを付けることができた。
4)6番目、9番目……と3の倍数毎に、'1' をセットする
(3番目=3は素数なので、ここにはマークを付けない)
これで、3の倍数にマークを付けることができた。
5)以下、4の倍数、5の倍数~32の倍数までマークを付ける
ですね。
No.1
- 回答日時:
#include <vector>
#include <iostream>
//思いっきり非効率だけどこんな感じかなあ。
//最初配列でやろうと思ったけど,自動的に要素数が増えないから管理が面倒そうだった。
// 比較的慣れているC#やVB.NETでやらなかったのはGeneric Listにprimitive type持たせたときのboxingの痛い思い出があるから。
//フローチャートかけないのでソースコードを勉強して読み解いてくれということで。
//言語の指定がなかったのでC++のつもり。コンパイラは
//Thread model: win32 gcc version 3.4.5 (mingw special)
std::vector<int> getPrimeNumbers(int n){
std::vector<int> v;
bool isprime;
v.push_back(2);
int i;
int j;
for (i = 3; i <= n; i++){
isprime = true;
for (j = 2; j <= i - 1 ;j++){
if ( i % j == 0){
isprime = false;
}
}
if (isprime == true){
v.push_back(i);
}
}
return v;
}
int main(){
for (int n = 6; n <= 1000; n = n + 2){
std::vector<int> v = getPrimeNumbers(n);
bool found = false;
for (std::vector<int>::iterator Iter = v.begin(); Iter != v.end(); Iter++){
for (std::vector<int>::iterator Iter2 = v.begin(); ((Iter2 != v.end()) && (found == false)); Iter2++){
if ( (*Iter2) == ( n - (*Iter))){
found = true;
std::cout << n << " = " << (*Iter) << " + " << (*Iter2) << std::endl;
}
}
}
if (found == false){
std::cout << n << " = " << "failed" << std::endl;
}
}
}
この回答へのお礼
お礼日時:2008/06/20 02:33
回答ありがとうございます!!
プログラムの言語はFORTRANでした。
この回答への補足に書いていたので、遅くなって済みません…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 ゴールドバッハの予想の部分証明について 4 2022/06/04 13:53
- 数学 失敗した人の話がほとんど出てこない理由は何でしょうか? 4 2022/06/06 14:08
- 数学 ゴールドバッハの予想について 2 2022/05/24 22:57
- 数学 加藤文元さんは自身のゴールドバッハの予想への見解が現実のものとなるか考えているのでしょうか? 2 2022/06/04 15:15
- 数学 数の概念について。 1 2022/06/06 12:40
- 大雨・洪水 ヤフー天気の雨雲レーダーの雨雲は、1時間後までは細かく予想表示されます。 しかし、1時間後以降の予想 1 2022/07/16 10:12
- C言語・C++・C# C言語の質問です。 以下の命令を実行するプログラムを作りました ①文字列aとbの長さを表示 ②aとb 1 2022/04/29 15:35
- 日本語 この意味って「予想」で合ってます? 10 2022/08/14 10:44
- 高校 物理共通テストです。漆原の面白いほどわかる本を3冊やって4割でした。リードαや良問の風などもあるので 1 2022/08/08 20:55
- 大学受験 指定校推薦の面接でグループ面接で5人で20分程度なのですが何問くらい質問されるでしょうか 予想として 1 2022/11/18 20:48
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「指定されたキャストは有効で...
-
【C++】関数ポインタの使い方
-
実数の整数部,小数部の取得
-
int型の変数値をバイト列として...
-
C言語の基礎 . 2乗値の差につ...
-
最早開始時間と最遅完了時刻を...
-
C言語での引数の省略方法
-
C++でRPGを作成する際のステー...
-
C言語の課題です
-
c言語の配列を使ってサイコロを...
-
C言語 エラーの原因がわからな...
-
C言語のサイコロシミュレート
-
複数桁10進数の*桁目だけを抽出...
-
ラップ関数とはどんなものですか?
-
「C#」SQL実行でのNULL値の処理...
-
C言語 巡回セールスマン問題 2-...
-
(int *)の意味
-
変数の値がおかしい
-
警告 W8065について。
-
任意の文字列のアルファベット...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
複数桁10進数の*桁目だけを抽出...
-
【C++】関数ポインタの使い方
-
ラップ関数とはどんなものですか?
-
ColorをRGBで指定する方法
-
(int *)の意味
-
足して100になるような乱数のア...
-
シェルピンスキーのギャスケット
-
if と配列の組み合わせ
-
実数の整数部,小数部の取得
-
構造体の勉強中です 合計点の高...
-
「{ } で囲むだけ」は正しい?
-
c言語の配列を使ってサイコロを...
-
式は定数値が必要です」という...
-
acceptをalarmでタイムアウトさ...
-
read関数をノンブロッキングで...
-
std::set<int> で、ある値が何...
おすすめ情報