# Check if a number is super perfect or not in Java

In this tutorial, you will learn about what is super-perfect number and the implementation in Java. But before that, you must know what is a super-perfect number.

## What is a Super-perfect Number?

Super-perfect numbers are those number that satisfies the condition f2(n) = f(f(n)) = 2n, where f is a function that signifies the sum of all divisors of a number.

## Java code to check if a number is super-perfect or not in Java

The following code can be used here to check it.

Step 1: First we will calculate the function f

```      package javaapplication15;
public class JavaApplication15
{
public static void main(String[] args)
{
int n = 16; int i,j,sum=1,sum1=1;
System.out.print("f(n) = "+sum);
for(i=2;i<=16;i++)
{
if(n%i==0)
{
System.out.print(" + "+i); sum = sum+i;
}
}
System.out.println(" = " +sum);
```

Step 2: Then we will calculate f(f(n))

```System.out.print("f(f(n)) = "+sum1);
for(i=2;i<=sum;i++)
{
if(sum%i==0)
{
System.out.print(" + "+i);
sum1 = sum1+i;
}
}
System.out.println(" = " +sum1);```

Step3: Now calculate 2*n

`System.out.println("2 * n = "+2*n);`

Step 4: Now check the condition if f(f(n)) = 2*n

```if(n*2==sum1)
System.out.println("Since f(f(n)) = 2*n therfore, the number is a superperfect number");
else System.out.println("Since f(f(n)) != 2*n therfore the number is not a superfect number");
}
}```

Output:-

```f(n) = 1 + 2 + 4 + 8 + 16 = 31
f(f(n)) = 1 + 31 = 32
2 * n = 32
Since f(f(n)) = 2*n therfore, the number is a superperfect number```