回答編集履歴

6

変更

2017/08/04 19:29

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -37,3 +37,5 @@
37
37
 
38
38
 
39
39
  入力が素数の場合でもforループの回数は入力数の半分で良いのですけれどね。
40
+
41
+

5

変更

2017/08/04 19:29

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
File without changes

4

変更

2017/08/04 16:12

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -33,3 +33,7 @@
33
33
  forループは5から先の19までループして終了します。ちょっとだけ効率化するとして yが1になった時点で
34
34
 
35
35
  forループをberakすれば良いかな。
36
+
37
+
38
+
39
+ 入力が素数の場合でもforループの回数は入力数の半分で良いのですけれどね。

3

変更

2017/08/04 16:12

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -2,23 +2,15 @@
2
2
 
3
3
 
4
4
 
5
- whileは置いといて、for文からですが、素数は1と自分以外はれ切れない数字の事ですから
5
+ whileは置いといて、for文からですが、素を求める為に、り算に使う i を2から
6
6
 
7
- 2から自分の数字の1つ前までの数字 i、を使います。
7
+ 自分の数字のつ前までのループさせれば良しとしています。もれは無いでしょう。
8
8
 
9
- なので
10
-
11
- for (int i = 2; x > i; i++){ .... }
9
+ なのでfor (int i = 2; x > i; i++){ .... }
12
10
 
13
11
 
14
12
 
15
- {...}の中の i は2から始まり1づつインクレメントして自分より1つ小さい時までの回ります
16
-
17
- からこの i を使って間割り切れるかの判定を行います。(y % i) == 0 の時割り切れる。
18
-
19
- ここで
20
-
21
- 素数判定であれば、if ((y % i) == 0)と判定して”素数では有りません”で、終了でも良かったと思いますが、このプログラムは素因数分解を求める為に、whileを使っているいます。
13
+ さらにプログラムは素因数分解を求める為に、whileを使っているいます。
22
14
 
23
15
  (整数が、どんな数であっても、素数の積によって表すことができる)
24
16
 
@@ -26,14 +18,18 @@
26
18
 
27
19
  素因数分解を行うには、順に小さいものから割りまくるです。
28
20
 
21
+ 割り算する数字が同じでも、割り切れている内は何回でも割ります。yは減っていきますけど。
22
+
29
- 例えば 20 の場合2,2,5の積になります。(構成しているのは素数です。)
23
+ 例えば 20 の場合2,2,5になります。(構成しているのは素数です。)
30
24
 
31
25
 
32
26
 
27
+ これをwhileで実現しています、(割り切れている間は回る)
28
+
33
- whileは条件がtrueの間はループします、20の場合、割切れる2は2回ループして
29
+ 実際20の場合、割切れる2は2回ループして
34
30
 
35
31
  y、が5になった時点で2では割り切れず、forループへ移ります。y/i は次の次の次の5で割り切れます。
36
32
 
37
33
  forループは5から先の19までループして終了します。ちょっとだけ効率化するとして yが1になった時点で
38
34
 
39
- berakすれば良いかな。
35
+ forループをberakすれば良いかな。

2

変更

2017/08/04 16:04

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -34,4 +34,6 @@
34
34
 
35
35
  y、が5になった時点で2では割り切れず、forループへ移ります。y/i は次の次の次の5で割り切れます。
36
36
 
37
- forループは5から先の19までループして終了します。
37
+ forループは5から先の19までループして終了します。ちょっとだけ効率化するとして yが1になった時点で
38
+
39
+ berakすれば良いかな。

1

変更

2017/08/04 15:48

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -18,13 +18,13 @@
18
18
 
19
19
  ここで
20
20
 
21
- 素数判定であれば、if ((y % i) == 0)と判定して”素数では有りません”で、終了でも良かったと思いますが、このプログラムは素因数分解も行たいが為に、whileを使っているのでは?
21
+ 素数判定であれば、if ((y % i) == 0)と判定して”素数では有りません”で、終了でも良かったと思いますが、このプログラムは素因数分解を求める為に、whileを使っているいます。
22
22
 
23
23
  (整数が、どんな数であっても、素数の積によって表すことができる)
24
24
 
25
25
 
26
26
 
27
- これ求めるには、順に小さいものから割りまくるです。
27
+ 素因数分解行うには、順に小さいものから割りまくるです。
28
28
 
29
29
  例えば 20 の場合2,2,5の積になります。(構成しているのは素数です。)
30
30