Java >> Java tutorial >  >> Java

Java-program til at finde det perfekte nummer

Et tal kaldes et perfekt tal hvis summen af ​​alle dets faktorer eksklusive tallet selv er lig med tallet. Overvej f.eks. tallet 6. Faktorerne for 6 er 1,2,3 og 6. Nu er summen af ​​alle dets faktorer eksklusive tallet selv 1+2+3=6.

Her, da det oprindelige tal er lig med summen af ​​alle dets faktorer eksklusive tallet selv, er det derfor et perfekt tal.

I denne tutorial lærer vi, hvordan du finder det perfekte tal i java. Men før du går videre, hvis du ikke er bekendt med begrebet loops i java, så tjek artiklen om Loops in Java

Input: Indtast nummeret:34

Output: 34 er ikke et perfekt tal

Java-program til at finde det perfekte nummer

I dette program vil vi kontrollere, om tallet er perfekt eller ej ved at bruge en for-løkke.

Algorithme

  1. Start

  2. Opret en forekomst af Scanner-klassen.

  3. Deklarer en variabel.

  4. Bed brugeren om at initialisere variablen.

  5. Kald en metode for at kontrollere, om nummeret er perfekt eller ej.

  6. Deklarer en variabel for at gemme summen af ​​divisorer.

  7. Initialiser summen til 1.

  8. Brug en for-løkke til at finde divisorerne for det indtastede tal.

  9. Opdater summen hver gang en divisor af det indtastede tal støder på.

  10. Hvis summen af ​​alle divisorerne for de indtastede tal er lig med det indtastede tal, så udskriv det som et perfekt tal.

  11. Hvis summen af ​​alle divisorerne for de indtastede tal ikke er lig med det indtastede tal, så udskriv det som ikke et perfekt tal.

  12. Vis resultatet.

  13. Stop

Nedenfor er Java-koden til at finde det perfekte nummer.

// Program to find the perfect number in Java 
import java.util.Scanner;
public class Main 
{  
   public static void main(String[] args) 
   {  
       //Take input from the user
       //Create instance of the Scanner class
       Scanner sc = new Scanner(System.in);  
       System.out.println("Enter the number: ");  
       int num = sc.nextInt();        
       if (checkPerfect(num)) 
        {  
               System.out.print(num+" is a perfect number ");  
        }
        else
        {
            System.out.println(num+" is not a perfect number "); 
        }
         
   }  
    static boolean checkPerfect(int num)
   {
    // To store sum of divisors
    int sum = 1;
 
    // Find all divisors and add them
    for (int i = 2; i * i <= num; i++)
    {
        if (num % i==0)
        {
            if(i * i != num)
                sum = sum + i + num / i;
            else
                sum = sum + i;
        }
    } 
        // If sum of divisors is equal to number
        // Then number is a perfect number
        if (sum == num && num != 1)
        return true;
 
       return false;
    } 
} 


Indtast tallet:28
28 er et perfekt tal

Program 2:Java-program til at finde det perfekte nummer

I dette program vil vi kontrollere, om tallet er perfekt eller ej ved at bruge en while-løkke.

Algorithme

  1. Start

  2. Opret en forekomst af Scanner-klassen.

  3. Deklarer en variabel.

  4. Bed brugeren om at initialisere variablen.

  5. Kald en metode for at kontrollere, om nummeret er perfekt eller ej.

  6. Erklære en variabel for at gemme summen af ​​divisorer og en anden sløjfevariabel.

  7. Initialiser summen til 0 og sløjfevariablen til 1.

  8. Brug en while-løkke til at finde divisorerne for det indtastede tal.

  9. Opdater summen hver gang en divisor af det indtastede tal støder på.

  10. Forøg loop-variablen efter hver iteration.

  11. Hvis summen af ​​alle divisorerne for de indtastede tal er lig med det indtastede tal, så udskriv det som et perfekt tal.

  12. Hvis summen af ​​alle divisorerne for de indtastede tal ikke er lig med det indtastede tal, så udskriv det som ikke et perfekt tal.

  13. Vis resultatet.

  14. Stop

Nedenfor er Java-koden til at finde det perfekte nummer.

// Program to find the perfect number in Java 
import java.util.Scanner;
public class Main 
{  
   public static void main(String[] args) 
   {  
       //Take input from the user
       //Create instance of the Scanner class
       Scanner sc = new Scanner(System.in);  
       System.out.println("Enter the number: ");  
       int num = sc.nextInt();  
       checkPerfect(num);    //Call a method to check perfect
       
   }  
   //Checks and Prints whether perfect or not
   static void checkPerfect(int num)
   {
    // To store sum of divisors
    int sum = 0,i=1;
    while(i<num)
    {
        if(num % i == 0)
        {
            sum = sum + i;
        }
        i++;
    }
    if(sum == num)
    {
        System.out.println("The entered number "+num+" is a Perfect number");
    }
    else
    {
        System.out.println("The entered number "+num+" is not a Perfect number");
    }     
  } 
} 


Indtast tallet:35
Det indtastede tal 35 er ikke et perfekt tal

Program 3:Java-program til at finde det perfekte nummer

I dette program finder vi de perfekte tal inden for et område.

Algorithme

  1. Start

  2. Opret en forekomst af Scanner-klassen.

  3. Angiv rækkevidden.

  4. Bed brugeren om at initialisere området.

  5. Brug en for-løkke til at iterere over elementerne inden for dette område.

  6. Kald en metode for at kontrollere, om nummeret er perfekt eller ej.

  7. Erklære en variabel for at gemme summen af ​​divisorer og en anden sløjfevariabel.

  8. Initialiser summen til 0 og sløjfevariablen til 1.

  9. Brug en while-løkke til at finde divisorerne for det indtastede tal.

  10. Opdater summen hver gang en divisor af det indtastede tal støder på.

  11. Forøg loop-variablen efter hver iteration.

  12. Hvis summen af ​​alle divisorerne for de indtastede tal er lig med det indtastede tal, returneres true.

  13. Hvis summen af ​​alle divisorerne for de indtastede tal ikke er lig med det indtastede tal, returneres falsk.

  14. Vis de perfekte elementer.

  15. Stop

Nedenfor er Java-koden til at finde det perfekte nummer.

// Program to find the perfect number in Java 
import java.util.Scanner;
public class Main 
{  
   public static void main(String[] args) 
   {  
       //Take input from the user
       //Create instance of the Scanner class
       Scanner sc = new Scanner(System.in);  
       System.out.println("Enter the first number: ");  
       int num1 = sc.nextInt(); 
       System.out.println("Enter the second number: ");  
       int num2 = sc.nextInt(); 
       System.out.println("Perfect numbers within the given range are: ");  
       for(int i=num1;i<=num2;i++)
       {      
           if(checkPerfect(i))
           System.out.print(i+" ");
       }
   }       
   //Checks and Prints whether perfect or not
   static boolean checkPerfect(int num)
   {
    // To store sum of divisors
    int sum = 0,i=1;
    while(i<num)
    {
        if(num % i == 0)
        {
            sum = sum + i;
        }
        i++;
    }
    if(sum == num)
       return true;
       
    return false;    
  } 
} 


Indtast det første tal:2
Indtast det andet tal:50
Perfekte tal inden for det givne område er:
6 28


Java tag