teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

「みた」が誤変換になってたのをひらがなに直したはずなんだがな…?

2018/07/26 16:23

投稿

swordone
swordone

スコア20675

answer CHANGED
File without changes

1

コード

2018/07/26 16:23

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -1,2 +1,35 @@
1
1
  mainメソッドで、nが0のままforループに入っているため、一度もループに入れません。
2
- 10000までであるならnを10000にするべきでは?
2
+ 10000までであるならnを10000にするべきでは?
3
+
4
+ 約数の総和を求めるメソッドを他と違えてみた
5
+
6
+ ```java
7
+ public static void main(String[] args) {
8
+ for (int i = 1; i <= 10000; i++) {
9
+ int j = sumOfDivisor(i);
10
+ if (i < j && sumOfDivisor(j) == i) {
11
+ System.out.println(i + " " + j);
12
+ }
13
+ }
14
+ }
15
+
16
+ public static int sumOfDivisor(int a) {
17
+ int c = a;
18
+ int sum = 1;
19
+
20
+ for (int i = 2; c >= i * i; i++) {
21
+ int multi = 1;
22
+ int tempSum = 1;
23
+ while (c % i == 0) {
24
+ c /= i;
25
+ multi *= i;
26
+ tempSum += multi;
27
+ }
28
+ sum *= tempSum;
29
+ }
30
+ if (c != 1) {
31
+ sum *= 1 + c;
32
+ }
33
+ return sum - a;
34
+ }
35
+ ```