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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Java

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

アルゴリズム

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

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

解決済

[至急] Project Euler: #10 Summation of primes コード、入力、出力、できれば解説もお願いします。アルゴリズムとデータ構造

退会済みユーザー

退会済みユーザー

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Java

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

アルゴリズム

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

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

3回答

0リアクション

0クリップ

584閲覧

投稿2022/09/20 10:10

編集2022/09/20 10:18

https://projecteuler.net/problem=10

The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.

Find the sum of all the primes below two million.

結論からお伝えすると、答えを教えてください。C,C++,javaのどれかで。
コードと入力と出力とできれば解説もお願いします。
プログラミング未経験でも簡単に理解できるように説明してほしい。

私の考え

Pseudocode

sum ← 0 for 1≦i<2000000 sum ← sum + i × isPrime(i) output sum

isPrime(i)をどのようにして求める?

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/09/21 00:29

こちらの質問が複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

2022/09/20 10:58

こちらの質問が他のユーザーから「過去に投稿した質問と同じ内容の質問」という指摘を受けました。

2022/09/20 22:08

こちらの質問が他のユーザーから「広告と受け取られるような質問」という指摘を受けました。

退会済みユーザー

退会済みユーザー

2022/09/20 11:22

isPrime(i)ではなくi × isPrime(i)
episteme

2022/09/20 11:27

は? isPrimeが 素数なら1 / 合成数なら0 を返せばいいじゃん。
退会済みユーザー

退会済みユーザー

2022/09/20 11:30

だ か ら Σ(ab) ≠ (Σa)(Σb) この場合Σは分解できない
episteme

2022/09/20 11:33

ごめん何言うてるんかわからん。
退会済みユーザー

退会済みユーザー

2022/09/20 11:35

一般にΣ(ab) = (Σa)(Σb)が成り立つとは限らない
episteme

2022/09/20 11:47 編集

それは理解できる。が、それが本件にどう関わるかがわからん。 Σ(iが素数ならi / 合成数なら0) where i = 1,2,...2000000 じゃろ? Σa だけで十分ちゃう?
退会済みユーザー

退会済みユーザー

2022/09/20 11:50

その考え方はおかしいと思う。 少なくとも、多くの人が直感的に納得できることではない。
episteme

2022/09/20 11:58 編集

> その考え方はおかしいと思う。 どこが? 「2000000以下の素数を全部足せ」に対し Σ(iが素数ならi / 合成数なら0) where i = 1,2,...2000000 のどこがおかしい? > 少なくとも、多くの人が直感的に納得できることではない。 なぜに?
退会済みユーザー

退会済みユーザー

2022/09/20 11:59

数学的に複雑な議論であるから。 私はこの総和を皆さんの助けなくして処理できない。
退会済みユーザー

退会済みユーザー

2022/09/20 12:00

vector<int>を用意するとどうなる?
episteme

2022/09/20 12:01

ん? 正しくは「少なくとも、kisaragiSTが直感的に納得できることではない。」だといいうこと?
退会済みユーザー

退会済みユーザー

2022/09/20 12:01

Σ(i×isPrime(i)) じゃなくて if isPrime(i) = TRUE sum ← sum + i じゃない?
episteme

2022/09/20 12:02

> vector<int>を用意するとどうなる? コードみせて
退会済みユーザー

退会済みユーザー

2022/09/20 12:02

私以外にもこの議論が理解できない人が多数存在する。
退会済みユーザー

退会済みユーザー

2022/09/20 12:03

コードはもっていません
episteme

2022/09/20 12:06 編集

> if isPrime(i) = TRUE > sum ← sum + i > じゃない? isPrime(i) が 「iが素数なら1 / 合成数なら0を返す」なら if isPrime(i) = TRUE sum ← sum + i と sum ← sum + i*isPrime(i)  は同義だ。
退会済みユーザー

退会済みユーザー

2022/09/20 12:09

いやいや 片方にはifがあるのにもう片方にはそれすらない
episteme

2022/09/20 12:12

> 私以外にもこの議論が理解できない人が多数存在する。 その証拠は? (幼稚園生には理解できんだろうが、その類は論拠にならん)
退会済みユーザー

退会済みユーザー

2022/09/20 12:14

幼稚園生には理解できんだろうが、その類も論拠になります。
episteme

2022/09/20 12:15

> 片方にはifがあるのにもう片方にはそれすらない sum = sum + i*isPrime(i) if iが素数なら sum に i を足す そうでなければ sum に 0 を足す(つまりなにもしない) 両者は同義だ。これでいい?
episteme

2022/09/20 12:16

> 幼稚園生には理解できんだろうが、その類も論拠になります。 だからなに? 議論に負けたくない一心でそう主張してる?
amd64ubuntu

2022/09/20 12:17

i に 0 を掛けたら、0 なので、加算されないに等しい。 と、なんでここで算数教えなきゃいけないんだって思われますよ。
退会済みユーザー

退会済みユーザー

2022/09/20 12:18

isPrimeに隠れif文があるということ? 別にあなたを論破したいわけじゃないんで喧嘩は控えてもらえるか
episteme

2022/09/20 12:24 編集

> isPrimeに隠れif文があるということ? isPrimeではなく、「加算に対しては隠れif文がある(足した数が0ならなにもしない」なら、そう思っていいかと。
退会済みユーザー

退会済みユーザー

2022/09/20 12:25

わかりました @amd64ubuntu これは大学数学、離散数学です
episteme

2022/09/20 12:26 編集

わかってくれてありがとう # なんでここで算数教えなきゃいけないんだ
退会済みユーザー

退会済みユーザー

2022/09/20 12:26

どういたしまして! 困ったときはお互い様です。
退会済みユーザー

退会済みユーザー

2022/09/20 12:26

分からないことがあったらteratailでまた質問します。
episteme

2022/09/20 12:32

では本件はcloseよろしく。
退会済みユーザー

退会済みユーザー

2022/09/20 12:33

ok

まだ回答がついていません

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

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Java

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

アルゴリズム

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

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。