* add AliquotSum
* add Median
This commit is contained in:
parent
35ccbd982d
commit
8c5ec652f6
35
Maths/AliquotSum.java
Normal file
35
Maths/AliquotSum.java
Normal file
@ -0,0 +1,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; i < number; ++i) {
|
||||
if (number % i == 0) {
|
||||
sum += i;
|
||||
}
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
}
|
28
Maths/Median.java
Normal file
28
Maths/Median.java
Normal file
@ -0,0 +1,28 @@
|
||||
package Maths;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* Wikipedia: https://en.wikipedia.org/wiki/Median
|
||||
*/
|
||||
public class Median {
|
||||
public static void main(String[] args) {
|
||||
assert median(new int[]{0}) == 0;
|
||||
assert median(new int[]{1, 2}) == 1.5;
|
||||
assert median(new int[]{4, 1, 3, 2}) == 2.5;
|
||||
assert median(new int[]{1, 3, 3, 6, 7, 8, 9}) == 6;
|
||||
assert median(new int[]{1, 2, 3, 4, 5, 6, 8, 9}) == 4.5;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate average median
|
||||
*
|
||||
* @param values number series
|
||||
* @return median of given {@code values}
|
||||
*/
|
||||
public static double median(int[] values) {
|
||||
Arrays.sort(values);
|
||||
int length = values.length;
|
||||
return length % 2 == 0 ? (values[length / 2] + values[length / 2 - 1]) / 2.0 : values[length / 2];
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user