# 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 **f ^{2}(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

Also read: Java program to check if a number is a Carmichael number

## Leave a Reply