-
Notifications
You must be signed in to change notification settings - Fork 118
/
Abundant Numbers.java
62 lines (54 loc) · 1.47 KB
/
Abundant Numbers.java
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// An Optimized Solution to check Abundant Number
// in JAVA
import java.io.*;
import java.math.*;
import java.util.*;
// Function to calculate sum of divisors
class Main{
static int getSum(int n)
{
int sum = 0;
// Note that this loop runs till square
// root of n
for (int i=1; i<=(Math.sqrt(n)); i++)
{
if (n%i==0)
{
// If divisors are equal,take only
// one of them
if (n/i == i)
sum = sum + i;
else // Otherwise take both
{
sum = sum + i;
sum = sum + (n / i);
}
}
}
// calculate sum of all proper divisors
// only
sum = sum - n;
return sum;
}
// Function to check Abundant Number
static boolean checkAbundant(int n)
{
// Return true if sum of divisors is
// greater than n.
return (getSum(n) > n);
}
/* Driver program to test above function */
public static void main(String args[])throws
IOException
{
int n ;
Scanner sc = new Scanner(System.in);
// enter the upper limit for finding the abundant numbers
n = sc.nextInt();
for (int i =0 ; i <=n; i++){
// check if n is an abundant number or not
if (checkAbundant(i))
System.out.println(i);
}
}
}