forked from TheAlgorithms/Java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAliquotSum.java
More file actions
35 lines (33 loc) · 1.03 KB
/
AliquotSum.java
File metadata and controls
35 lines (33 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package Maths;
/**
* <p>
* In number theory, the aliquot sum s(n) of a positive integer n is the sum of all proper divisors of n,
* that is, all divisors of n other than n itself.
* For example, the proper divisors of 15 (that is, the positive divisors of 15 that are not equal to 15)
* are 1, 3 and 5, so the aliquot sum of 15 is 9 i.e. (1 + 3 + 5).
* </p>
* Wikipedia: https://en.wikipedia.org/wiki/Aliquot_sum
*/
public class AliquotSum {
public static void main(String[] args) {
assert aliquotSum(1) == 0;
assert aliquotSum(6) == 6;
assert aliquotSum(15) == 9;
assert aliquotSum(19) == 1;
}
/**
* Finds the aliquot sum of an integer number
*
* @param number a positive integer
* @return aliquot sum of given {@code number}
*/
public static int aliquotSum(int number) {
int sum = 0;
for (int i = 1, limit = number / 2; i <= limit; ++i) {
if (number % i == 0) {
sum += i;
}
}
return sum;
}
}