Added 25 solutions
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
// Author: Rodney Shaghoulian
|
||||
// Github: github.com/rshaghoulian
|
||||
// HackerRank: hackerrank.com/rshaghoulian
|
||||
|
||||
import java.util.*;
|
||||
|
||||
interface AdvancedArithmetic {
|
||||
int divisor_sum(int n);
|
||||
}
|
||||
|
||||
class MyCalculator implements AdvancedArithmetic {
|
||||
// Runtime: O(n^(1/2))
|
||||
// Space Complexity: O(1)
|
||||
public int divisor_sum(int n) {
|
||||
int sum = 0;
|
||||
int sqrt = (int) Math.sqrt(n);
|
||||
for (int i = 1; i <= sqrt; i++) {
|
||||
if (n % i == 0) { // if "i" is a divisor
|
||||
sum += i + n/i; // add both divisors
|
||||
}
|
||||
}
|
||||
/* If sqrt is a divisor, we should only count it once */
|
||||
if (sqrt * sqrt == n) {
|
||||
sum -= sqrt;
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
}
|
||||
|
||||
class Solution {
|
||||
public static void main(String []args) {
|
||||
MyCalculator my_calculator = new MyCalculator();
|
||||
System.out.print("I implemented: ");
|
||||
ImplementedInterfaceNames(my_calculator);
|
||||
Scanner sc = new Scanner(System.in);
|
||||
int n = sc.nextInt();
|
||||
System.out.print(my_calculator.divisor_sum(n) + "\n");
|
||||
sc.close();
|
||||
}
|
||||
/*
|
||||
* ImplementedInterfaceNames method takes an object and prints the name of the interfaces it implemented
|
||||
*/
|
||||
static void ImplementedInterfaceNames(Object o) {
|
||||
Class[] theInterfaces = o.getClass().getInterfaces();
|
||||
for (int i = 0; i < theInterfaces.length; i++) {
|
||||
String interfaceName = theInterfaces[i].getName();
|
||||
System.out.println(interfaceName);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user