回答編集履歴
6
変更
test
CHANGED
@@ -37,3 +37,5 @@
|
|
37
37
|
|
38
38
|
|
39
39
|
入力が素数の場合でもforループの回数は入力数の半分で良いのですけれどね。
|
40
|
+
|
41
|
+
|
5
変更
test
CHANGED
File without changes
|
4
変更
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
変更
test
CHANGED
@@ -2,23 +2,15 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
whileは置いといて、for文からですが、素数
|
5
|
+
whileは置いといて、for文からですが、素因数を求める為に、割り算に使う i を2から
|
6
6
|
|
7
|
-
|
7
|
+
自分の数字の1つ前までのループさせれば良しとしています。もれは無いでしょう。
|
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
|
-
|
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
|
-
|
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
変更
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
変更
test
CHANGED
@@ -18,13 +18,13 @@
|
|
18
18
|
|
19
19
|
ここで
|
20
20
|
|
21
|
-
素数判定であれば、if ((y % i) == 0)と判定して”素数では有りません”で、終了でも良かったと思いますが、このプログラムは素因数分解
|
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
|
|