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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

3回答

1184閲覧

Java問題 素数について

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

1グッド

1クリップ

投稿2018/05/22 23:26

package

1 2public class Nondai4_2 { 3 4 public static void main(String[] args) { 5 6 int n = 100000000; 7 8 int o = 0; 9 long goukei = 0; 10 int[] sosu = new int[100000000]; 11 12 sosu[o++] = 2; 13 sosu[o++] = 3; 14 15 for (int i = 5; i <= n; i += 2) { 16 boolean flag = true; 17 for (int p = 1; sosu[p] * sosu[p] <= i; p++) { 18 if (i % sosu[p] == 0) { 19 flag = false; 20 break; 21 } 22 } 23 if (flag) { 24 sosu[o++] = i; 25 } 26 } 27 for (int i = 0; i < o; i++) { 28 goukei += sosu[i]; 29 System.out.println(sosu[i]); 30 } 31 System.out.println(goukei); 32 } 33} 34### ヘディングのテキスト

昨日質問した問題の答えが上記だったのですが、もっと違う解答ありますか。
合計だけが出力されるようにしたいのですが....

配列の中に[++]が入ると、どういう状態になるのでしょうか。
2点質問させていただきます。

退会済みユーザー👍を押しています

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

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

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

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

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

guest

回答3

0

sosu[o++] = i;
の直下で合計してやればループは一回で済むのとsysoutは必要なところ以外削除すればいいのでは?
(二乗まではいいあんだな)

ちなみに

array[i++]はインデックスiに代入後にiを加算する

投稿2018/05/22 23:40

編集2018/05/22 23:43
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2018/05/23 00:00

ありがとうございます! sysoutの削除をします! ループを減らしてみます(^∇^)
guest

0

誰もエラトステネスの篩を出さないのはなぜだろう

java

1public class Nondai4_2 { 2 3 public static void main(String[] args) { 4 5 int n = 100000000; 6 7 long goukei = 0; 8 boolean[] notPrime = new boolean[n + 1]; 9 10 notPrime[0] = notPrime[1] = true; 11 12 int root = (int)Math.sqrt(n); 13 for (int i = 2; i <= n; i ++) { 14 if (notPrime[i]) continue; 15 goukei += i; 16 if(i > root) continue; 17 for (int p = i * i; p <= n; p += i) { 18 notPrime[p] = true; 19 } 20 } 21 System.out.println(goukei); 22 } 23}

投稿2018/05/23 02:43

編集2018/05/25 07:44
swordone

総合スコア20651

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

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

0

ベストアンサー

  1. 合計だけを表示したい=「個々の素数は表示しない」ですから、「個々の素数を表示しているメソッドを呼び出さない」になります。

では個々の素数を表示しているメソッドは何でしょうか? それはつまり、個々の素数を格納している配列の内容を表示しているメソッドです。

  1. {変数}++ は、まず変数の中身を式の値として評価して、その後で変数の値を +1 します。

つまり、これ

Java

1 sosu[o++] = 2; 2 sosu[o++] = 3;

はこう書いているのと同じ事です。

Java

1 sosu[o] = 2; o = o + 1; 2 sosu[o] = 3; o = o + 1;

投稿2018/05/22 23:42

tacsheaven

総合スコア13703

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

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

退会済みユーザー

退会済みユーザー

2018/05/22 23:58

ありがとうございます。 勉強になりました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問