質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

2回答

2763閲覧

0から100までの素数を求めたいのですが、2しか素数として出力されません

L4zy

総合スコア18

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

1グッド

1クリップ

投稿2020/04/12 04:44

0から100までの素数を求めたいのですが、2しか素数として出力されません。
素数の判定はfor(i = 0; i <= MAX; i++)この部分で行っています。
なぜ最初の2しか出力されないのでしょうか? 教えてください。

public class chart3a
{
final static int MAX = 100;
public static int i = 0;
public static int j = 0;
public static int[] array = new int[100];

public static void main( String[] args ) { for(i = 0; i <= MAX; i++) { if(SosuCheck(i)) { array[j] = i; j = j + 1; } } //出力 for(i = 0; i < j; i++) { System.out.print(array[i] + " "); } } public static boolean SosuCheck(int i) { if(i == 2) { return true; } //判定数値を偶数で割れた場合は奇数ではない if(i % 2 == 0 || i < 2) { return false; } for(int kisuu = 3; kisuu <= MAX; kisuu += 2 ) { if(i % kisuu == 0 ) { return false; } } return true; }

}

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/04/12 05:12

このコードでは、奇数で割り切れたら素数でないという定義だからです。この定義だと 7 は 7 で割り切れるので素数ではなくなります。
raccy

2020/04/12 05:15

このままではコードが読みづらいので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください(2回目)
Zuishin

2020/04/12 05:32 編集

これまでの質問を読んだところ、2 回どころではない回数言われているのにできないので、彼にそれは難しすぎるのでしょう。中学生や高校生もちゃんとやっていることですが。 読みにくいなら読めるよう勉強しましょう、というのがこの人のスタンスのようです。 https://teratail.com/questions/206579
gentaro

2020/04/12 05:19

これなんかの宿題ですか?
kaina

2020/04/13 06:38

今まで17回も質問しておいて未だにマークダウン形式でコードを 書かない理由は何ですかね? 質問の回答が欲しいならその程度のことは出来ませんか? これだけ繰り返していれば小学生でも理解できると思いますがいかがでしょうか?
swordone

2020/04/13 14:36

https://teratail.com/questions/206579 「見る気にならない人は見なくていい」というスタンスの質問者なので、見にくいと思うなら何もせず静かに立ち去りましょう。
guest

回答2

0

for(int kisuu = 3; kisuu <= MAX; kisuu += 2 )

ここがダメです。
自分自身で割らないようにしてください。

投稿2020/04/13 06:33

momon-ga

総合スコア4820

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Java

1for(int kisuu = 3; kisuu <= MAX; kisuu += 2 ) { 2  if(i % kisuu == 0 ) { 3 return false; 4 } 5}

MAX以下の奇数すべてで割り切れなければiは素数じゃない

i未満の奇数すべてで割り切れなければiは素数だ。

投稿2020/04/13 09:08

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momon-ga

2020/04/13 10:34 編集

> MAX以下の奇数すべてで割り切れなければiは素数じゃない ”すべて”でなく、”どれか”ですね。 で、MAX以下なので自分自身を含むので必ず割り切れちゃうので・・・ おっと、読み間違えてました。 MAX以下の奇数どれかで割り切れたらiは素数じゃない。 でした。
退会済みユーザー

退会済みユーザー

2020/04/13 10:41

現在値の1/3までで割りきれなければ素数
episteme

2020/04/13 11:23

100以下とのことなので、√100以下の素数:2,3,5,7で割れなければ十分やけど。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問