Merge pull request #1426 from shellhub/dev

Added AliquotSum and Median
This commit is contained in:
Du Yuanchao 2020-08-21 00:02:21 +08:00 committed by GitHub
commit d6947d0fbd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 65 additions and 0 deletions

View File

@ -117,6 +117,7 @@
* [AbsoluteMax](https://github.com/TheAlgorithms/Java/blob/master/Maths/AbsoluteMax.java)
* [AbsoluteMin](https://github.com/TheAlgorithms/Java/blob/master/Maths/AbsoluteMin.java)
* [AbsoluteValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/AbsoluteValue.java)
* [AliquotSum](https://github.com/TheAlgorithms/Java/blob/master/Maths/AliquotSum.java)
* [AmicableNumber](https://github.com/TheAlgorithms/Java/blob/master/Maths/AmicableNumber.java)
* [Area](https://github.com/TheAlgorithms/Java/blob/master/Maths/Area.java)
* [Average](https://github.com/TheAlgorithms/Java/blob/master/Maths/Average.java)
@ -134,6 +135,7 @@
* [GCDRecursion](https://github.com/TheAlgorithms/Java/blob/master/Maths/GCDRecursion.java)
* [LucasSeries](https://github.com/TheAlgorithms/Java/blob/master/Maths/LucasSeries.java)
* [MaxValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/MaxValue.java)
* [Median](https://github.com/TheAlgorithms/Java/blob/master/Maths/Median.java)
* [MinValue](https://github.com/TheAlgorithms/Java/blob/master/Maths/MinValue.java)
* [Mode](https://github.com/TheAlgorithms/Java/blob/master/Maths/Mode.java)
* [NumberOfDigits](https://github.com/TheAlgorithms/Java/blob/master/Maths/NumberOfDigits.java)

35
Maths/AliquotSum.java Normal file
View 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, limit = number / 2; i <= limit; ++i) {
if (number % i == 0) {
sum += i;
}
}
return sum;
}
}

28
Maths/Median.java Normal file
View 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];
}
}