How to check if a number is abundant number in Java

2 Answers

0 votes
public class MyClass {
    private static int SumNumberProperDivisors(final int num) {
        int sum = 0;
     
        for (int i = 1, j; i <= Math.sqrt(num); i++) {
            if (num % i == 0) {
                sum += i + (i == (j = num / i) ? 0 : j);
                System.out.print(i + ", " + num / i + ", ");
            }
        }
        return sum - num;
    }
    public static void main(String args[]) {
        int num = 24;
        int sum = SumNumberProperDivisors(num);
 
        System.out.println("num = " + num + " sum = " + sum + " abundant = " + (sum > num ? "true" : "false"));
 
        num = 21;
        sum = SumNumberProperDivisors(num);
         
        System.out.println("num = " + num + " sum = " + sum + " abundant = " + (sum > num ? "true" : "false"));
    }
}
 
 
 
 
 
 
/*
run:
  
1, 24, 2, 12, 3, 8, 4, 6, num = 24 sum = 36 abundant = true
1, 21, 3, 7, num = 21 sum = 11 abundant = false
  
*/

 



answered Nov 1, 2022 by avibootz
edited Nov 1, 2022 by avibootz
0 votes
public class MyClass {
    private static int SumNumberProperDivisors(final int num) {
    	int sum = 0;  
    	
        for (int i = 1; i <= Math.sqrt(num); i++) {
            if (num % i == 0) {
                if (i == (num / i)) {
                    sum += i;
                    System.out.print(i + ", ");
                }
                else {
                    sum += i + (num / i);
                    System.out.print(i + ", " + num / i + ", ");
                }
            }
        }
        return sum - num;  
    }
    public static void main(String args[]) {
        int num = 24;
	    int sum = SumNumberProperDivisors(num);

        System.out.println("num = " + num + " sum = " + sum + " abundant = " + (sum > num ? "true" : "false"));

    	num = 21;
	    sum = SumNumberProperDivisors(num);
	    
	    System.out.println("num = " + num + " sum = " + sum + " abundant = " + (sum > num ? "true" : "false"));
    }
}






/*
run:
 
1, 24, 2, 12, 3, 8, 4, 6, num = 24 sum = 36 abundant = true
1, 21, 3, 7, num = 21 sum = 11 abundant = false
 
*/

 



answered Nov 1, 2022 by avibootz

Related questions

1 answer 108 views
1 answer 99 views
1 answer 92 views
1 answer 107 views
1 answer 101 views
1 answer 98 views
2 answers 103 views
...