FIND A PERFECT NUMBER
Associated Course(s):   Interview Preparation
Given a number N, check if a number is perfect or not. A number is said to be perfect if sum of all its factors excluding the number itself is equal to the number.
Input:
First line consists of T test cases. Then T test cases follow .Each test case consists of a number N.
First line consists of T test cases. Then T test cases follow .Each test case consists of a number N.
Output:
For each testcase, in a new line, output in a single line 1 if a number is a perfect number else print 0.
For each testcase, in a new line, output in a single line 1 if a number is a perfect number else print 0.
Constraints:
1 <= T <= 300
1 <= N <= 1018
1 <= T <= 300
1 <= N <= 1018
Example:
Input:
2
6
21
Output:
1
0
Input:
2
6
21
Output:
1
0
** For More Input/Output Examples Use 'Expected Output' option **
import java.util.*;
import java.lang.*;
import java.io.*;
class GFG {
 public static void main (String[] args) {
  Scanner s=new Scanner(System.in);
  int t=s.nextInt();
  for(int i=0;i<t;i++)
  {
      int n=s.nextInt();
      if(isperfect(n))
      {
          System.out.println("1");
      }
      else
      System.out.println("0");
  }
 }
 static boolean isperfect(int n)
 {
     // To store sum of divisors 
     int sum = 1; 
    // Find all divisors and add them 
    for ( int i=2; i*i<=n; i++) 
    { 
        if (n%i==0) 
        { 
            if(i*i!=n) 
                sum = sum + i + n/i; 
            else
                sum=sum+i; 
        } 
    }  
     // If sum of divisors is equal to 
     // n, then n is a perfect number 
     if (sum == n && n != 1) 
          return true; 
     return false; 
 }
}
Comments
Post a Comment