回答編集履歴
1
説明の訂正
answer
CHANGED
@@ -4,8 +4,9 @@
|
|
4
4
|
|
5
5
|
例えば、```n```が2で割り切れたら、```n / 2```も```n```の約数です。(約数の性質)
|
6
6
|
つまり、```n```の平方根の整数部分までの約数の個数を求めそれを2倍すればいいのです。
|
7
|
-
ここで、注意すべき点は```n```が平方数の場合です。この場合はさらに1加えればいいでしょう。
|
7
|
+
ここで、注意すべき点は```n```が平方数の場合です。~~この場合はさらに1加えればいいでしょう。
|
8
|
-
|
8
|
+
~~
|
9
|
+
この場合は平方数の部分が重複するので1減らす必要があります。
|
9
10
|
### コードはまだ作成していないけれど、他に思いついた方法について
|
10
11
|
|
11
12
|
約数の個数を求める方法なら素因数分解して求めるのが一番 はやいと思います。
|
@@ -39,7 +40,7 @@
|
|
39
40
|
}
|
40
41
|
}
|
41
42
|
if(is_square(n)){
|
42
|
-
sum
|
43
|
+
sum--;
|
43
44
|
}
|
44
45
|
return sum;
|
45
46
|
}
|