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
-
Start
-
Opret en forekomst af Scanner-klassen.
-
Deklarer en variabel.
-
Bed brugeren om at initialisere variablen.
-
Kald en metode for at kontrollere, om nummeret er perfekt eller ej.
-
Deklarer en variabel for at gemme summen af divisorer.
-
Initialiser summen til 1.
-
Brug en for-løkke til at finde divisorerne for det indtastede tal.
-
Opdater summen hver gang en divisor af det indtastede tal støder på.
-
Hvis summen af alle divisorerne for de indtastede tal er lig med det indtastede tal, så udskriv det som et perfekt tal.
-
Hvis summen af alle divisorerne for de indtastede tal ikke er lig med det indtastede tal, så udskriv det som ikke et perfekt tal.
-
Vis resultatet.
-
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
-
Start
-
Opret en forekomst af Scanner-klassen.
-
Deklarer en variabel.
-
Bed brugeren om at initialisere variablen.
-
Kald en metode for at kontrollere, om nummeret er perfekt eller ej.
-
Erklære en variabel for at gemme summen af divisorer og en anden sløjfevariabel.
-
Initialiser summen til 0 og sløjfevariablen til 1.
-
Brug en while-løkke til at finde divisorerne for det indtastede tal.
-
Opdater summen hver gang en divisor af det indtastede tal støder på.
-
Forøg loop-variablen efter hver iteration.
-
Hvis summen af alle divisorerne for de indtastede tal er lig med det indtastede tal, så udskriv det som et perfekt tal.
-
Hvis summen af alle divisorerne for de indtastede tal ikke er lig med det indtastede tal, så udskriv det som ikke et perfekt tal.
-
Vis resultatet.
-
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
-
Start
-
Opret en forekomst af Scanner-klassen.
-
Angiv rækkevidden.
-
Bed brugeren om at initialisere området.
-
Brug en for-løkke til at iterere over elementerne inden for dette område.
-
Kald en metode for at kontrollere, om nummeret er perfekt eller ej.
-
Erklære en variabel for at gemme summen af divisorer og en anden sløjfevariabel.
-
Initialiser summen til 0 og sløjfevariablen til 1.
-
Brug en while-løkke til at finde divisorerne for det indtastede tal.
-
Opdater summen hver gang en divisor af det indtastede tal støder på.
-
Forøg loop-variablen efter hver iteration.
-
Hvis summen af alle divisorerne for de indtastede tal er lig med det indtastede tal, returneres true.
-
Hvis summen af alle divisorerne for de indtastede tal ikke er lig med det indtastede tal, returneres falsk.
-
Vis de perfekte elementer.
-
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