Skip to main content

Find perfect numbers in a given range

A perfect number is a positive integer that is equal to the sum of its proper divisors (excluding itself). In other words, if you add up all the factors of a number except for the number itself, and the sum is equal to the number, then that number is a perfect number.

For example, the first perfect number is 6, because its factors are 1, 2, 3, and 6, and 1 + 2 + 3 = 6. The next perfect number is 28, because its factors are 1, 2, 4, 7, 14, and 28, and 1 + 2 + 4 + 7 + 14 = 28.

If you are looking for perfect numbers within a given range, you would need to check each integer within that range to see if it is a perfect number using the method described above. However, it is important to note that perfect numbers become less common as the numbers get larger, and there are only a finite number of known perfect numbers in existence.

Code Solution

/*
    Java program for
    Find perfect numbers in a given range
*/
public class PerfectNumber
{
	// Check given number is perfect or not
	public boolean isPerfectNo(int n)
	{
		if (n < 0)
		{
			return false;
		}
		int sum = 0;
		for (int i = (n / 2); i >= 1; i--)
		{
			if (n % i == 0)
			{
				sum += i;
			}
		}
		if (sum == n)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	public void findPerfectNo(int x, int y)
	{
		// Result indicator
		// Initial false
		boolean result = false;
		System.out.print(" Perfect number in range of (" + 
                         x + "," + y + ") is \n");
		for (int i = x; i <= y; ++i)
		{
			if (isPerfectNo(i))
			{
				// When number is perfect number
				System.out.print("  " + i);
				// Change result status
				result = true;
			}
		}
		if (result == false)
		{
			System.out.print("\n None \n");
		}
	}
	public static void main(String[] args)
	{
		PerfectNumber task = new PerfectNumber();
		// Test A
		int x = 1;
		int y = 200;
		task.findPerfectNo(x, y);
	}
}

Output

 Perfect number in range of (1,200) is
  6  28
// Include header file
#include <iostream>
using namespace std;
/*
    C++ program for
    Find perfect numbers in a given range
*/
class PerfectNumber
{
	public:
		// Check given number is perfect or not
		bool isPerfectNo(int n)
		{
			if (n < 0)
			{
				return false;
			}
			int sum = 0;
			for (int i = (n / 2); i >= 1; i--)
			{
				if (n % i == 0)
				{
					sum += i;
				}
			}
			if (sum == n)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	void findPerfectNo(int x, int y)
	{
		// Result indicator
		// Initial false
		bool result = false;
		cout << " Perfect number in range of (" 
      		 << x << "," << y << ") is \n";
		for (int i = x; i <= y; ++i)
		{
			if (this->isPerfectNo(i))
			{
				// When number is perfect number
				cout << "  " << i;
				// Change result status
				result = true;
			}
		}
		if (result == false)
		{
			cout << "\n None \n";
		}
	}
};
int main()
{
	PerfectNumber *task = new PerfectNumber();
	// Test A
	int x = 1;
	int y = 200;
	task->findPerfectNo(x, y);
	return 0;
}

Output

 Perfect number in range of (1,200) is
  6  28
// Include namespace system
using System;
/*
    Csharp program for
    Find perfect numbers in a given range
*/
public class PerfectNumber
{
	// Check given number is perfect or not
	public Boolean isPerfectNo(int n)
	{
		if (n < 0)
		{
			return false;
		}
		int sum = 0;
		for (int i = (n / 2); i >= 1; i--)
		{
			if (n % i == 0)
			{
				sum += i;
			}
		}
		if (sum == n)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	public void findPerfectNo(int x, int y)
	{
		// Result indicator
		// Initial false
		Boolean result = false;
		Console.Write(" Perfect number in range of (" + 
                      x + "," + y + ") is \n");
		for (int i = x; i <= y; ++i)
		{
			if (this.isPerfectNo(i))
			{
				// When number is perfect number
				Console.Write("  " + i);
				// Change result status
				result = true;
			}
		}
		if (result == false)
		{
			Console.Write("\n None \n");
		}
	}
	public static void Main(String[] args)
	{
		PerfectNumber task = new PerfectNumber();
		// Test A
		int x = 1;
		int y = 200;
		task.findPerfectNo(x, y);
	}
}

Output

 Perfect number in range of (1,200) is
  6  28
package main
import "fmt"
/*
    Go program for
    Find perfect numbers in a given range
*/

// Check given number is perfect or not
func isPerfectNo(n int) bool {
	if n < 0 {
		return false
	}
	var sum int = 0
	for i :=(n / 2) ; i >= 1 ; i-- {
		if n % i == 0 {
			sum += i
		}
	}
	if sum == n {
		return true
	} else {
		return false
	}
}
func findPerfectNo(x, y int) {
	// Result indicator
	// Initial false
	var result bool = false
	fmt.Print(" Perfect number in range of (", 
		x, ",", y, ") is \n")
	for i := x ; i <= y ; i++ {
		if isPerfectNo(i) {
			// When number is perfect number
			fmt.Print("  ", i)
			// Change result status
			result = true
		}
	}
	if result == false {
		fmt.Print("\n None \n")
	}
}
func main() {
	// Test A
	var x int = 1
	var y int = 200
	findPerfectNo(x, y)
}

Output

 Perfect number in range of (1,200) is
  6  28
<?php
/*
    Php program for
    Find perfect numbers in a given range
*/
class PerfectNumber
{
	// Check given number is perfect or not
	public	function isPerfectNo($n)
	{
		if ($n < 0)
		{
			return false;
		}
		$sum = 0;
		for ($i = ((int)($n / 2)); $i >= 1; $i--)
		{
			if ($n % $i == 0)
			{
				$sum += $i;
			}
		}
		if ($sum == $n)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	public	function findPerfectNo($x, $y)
	{
		// Result indicator
		// Initial false
		$result = false;
		echo(" Perfect number in range of (".$x.
			",".$y.
			") is \n");
		for ($i = $x; $i <= $y; ++$i)
		{
			if ($this->isPerfectNo($i))
			{
				// When number is perfect number
				echo("  ".$i);
				// Change result status
				$result = true;
			}
		}
		if ($result == false)
		{
			echo("\n None \n");
		}
	}
}

function main()
{
	$task = new PerfectNumber();
	// Test A
	$x = 1;
	$y = 200;
	$task->findPerfectNo($x, $y);
}
main();

Output

 Perfect number in range of (1,200) is
  6  28
/*
    Node JS program for
    Find perfect numbers in a given range
*/
class PerfectNumber
{
	// Check given number is perfect or not
	isPerfectNo(n)
	{
		if (n < 0)
		{
			return false;
		}
		var sum = 0;
		for (var i = (parseInt(n / 2)); i >= 1; i--)
		{
			if (n % i == 0)
			{
				sum += i;
			}
		}
		if (sum == n)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	findPerfectNo(x, y)
	{
		// Result indicator
		// Initial false
		var result = false;
		process.stdout.write(" Perfect number in range of (" + 
                             x + "," + y + ") is \n");
		for (var i = x; i <= y; ++i)
		{
			if (this.isPerfectNo(i))
			{
				// When number is perfect number
				process.stdout.write("  " + i);
				// Change result status
				result = true;
			}
		}
		if (result == false)
		{
			process.stdout.write("\n None \n");
		}
	}
}

function main()
{
	var task = new PerfectNumber();
	// Test A
	var x = 1;
	var y = 200;
	task.findPerfectNo(x, y);
}
main();

Output

 Perfect number in range of (1,200) is
  6  28
#    Python 3 program for
#    Find perfect numbers in a given range
class PerfectNumber :
	#  Check given number is perfect or not
	def isPerfectNo(self, n) :
		if (n < 0) :
			return False
		
		sum = 0
		i = (int(n / 2))
		while (i >= 1) :
			if (n % i == 0) :
				sum += i
			
			i -= 1
		
		if (sum == n) :
			return True
		else :
			return False
		
	
	def findPerfectNo(self, x, y) :
		#  Result indicator
		#  Initial false
		result = False
		print(" Perfect number in range of (", x ,",", y ,") is ")
		i = x
		while (i <= y) :
			if (self.isPerfectNo(i)) :
				#  When number is perfect number
				print("  ", i, end = "")
				#  Change result status
				result = True
			
			i += 1
		
		if (result == False) :
			print("\n None ")
		
	

def main() :
	task = PerfectNumber()
	#  Test A
	x = 1
	y = 200
	task.findPerfectNo(x, y)

if __name__ == "__main__": main()

Output

 Perfect number in range of ( 1 , 200 ) is
   6   28
#    Ruby program for
#    Find perfect numbers in a given range
class PerfectNumber 
	#  Check given number is perfect or not
	def isPerfectNo(n) 
		if (n < 0) 
			return false
		end

		sum = 0
		i = (n / 2)
		while (i >= 1) 
			if (n % i == 0) 
				sum += i
			end

			i -= 1
		end

		if (sum == n) 
			return true
		else
 
			return false
		end

	end

	def findPerfectNo(x, y) 
		#  Result indicator
		#  Initial false
		result = false
		print(" Perfect number in range of (", 
              x ,",", y ,") is \n")
		i = x
		while (i <= y) 
			if (self.isPerfectNo(i)) 
				#  When number is perfect number
				print("  ", i)
				#  Change result status
				result = true
			end

			i += 1
		end

		if (result == false) 
			print("\n None \n")
		end

	end

end

def main() 
	task = PerfectNumber.new()
	#  Test A
	x = 1
	y = 200
	task.findPerfectNo(x, y)
end

main()

Output

 Perfect number in range of (1,200) is 
  6  28
/*
    Scala program for
    Find perfect numbers in a given range
*/
class PerfectNumber()
{
	// Check given number is perfect or not
	def isPerfectNo(n: Int): Boolean = {
		if (n < 0)
		{
			return false;
		}
		var sum: Int = 0;
		var i: Int = (n / 2);
		while (i >= 1)
		{
			if (n % i == 0)
			{
				sum += i;
			}
			i -= 1;
		}
		if (sum == n)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	def findPerfectNo(x: Int, y: Int): Unit = {
		// Result indicator
		// Initial false
		var result: Boolean = false;
		print(" Perfect number in range of (" + 
      	x + "," + y + ") is \n");
		var i: Int = x;
		while (i <= y)
		{
			if (isPerfectNo(i))
			{
				// When number is perfect number
				print("  " + i);
				// Change result status
				result = true;
			}
			i += 1;
		}
		if (result == false)
		{
			print("\n None \n");
		}
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: PerfectNumber = new PerfectNumber();
		// Test A
		var x: Int = 1;
		var y: Int = 200;
		task.findPerfectNo(x, y);
	}
}

Output

 Perfect number in range of (1,200) is
  6  28
/*
    Swift 4 program for
    Find perfect numbers in a given range
*/
class PerfectNumber
{
	// Check given number is perfect or not
	func isPerfectNo(_ n: Int) -> Bool
	{
		if (n < 0)
		{
			return false;
		}
		var sum: Int = 0;
		var i: Int = (n / 2);
		while (i >= 1)
		{
			if (n % i == 0)
			{
				sum += i;
			}
			i -= 1;
		}
		if (sum == n)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	func findPerfectNo(_ x: Int, _ y: Int)
	{
		// Result indicator
		// Initial false
		var result: Bool = false;
		print(" Perfect number in range of (", 
              x ,",", y ,") is ");
		var i: Int = x;
		while (i <= y)
		{
			if (self.isPerfectNo(i))
			{
				// When number is perfect number
				print("  ", i, terminator: "");
				// Change result status
				result = true;
			}
			i += 1;
		}
		if (result == false)
		{
			print("\n None ");
		}
	}
}
func main()
{
	let task: PerfectNumber = PerfectNumber();
	// Test A
	let x: Int = 1;
	let y: Int = 200;
	task.findPerfectNo(x, y);
}
main();

Output

 Perfect number in range of ( 1 , 200 ) is
   6   28
/*
    Kotlin program for
    Find perfect numbers in a given range
*/
class PerfectNumber
{
	// Check given number is perfect or not
	fun isPerfectNo(n: Int): Boolean
	{
		if (n < 0)
		{
			return false;
		}
		var sum: Int = 0;
		var i: Int = (n / 2);
		while (i >= 1)
		{
			if (n % i == 0)
			{
				sum += i;
			}
			i -= 1;
		}
		if (sum == n)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	fun findPerfectNo(x: Int, y: Int): Unit
	{
		// Result indicator
		// Initial false
		var result: Boolean = false;
		print(" Perfect number in range of (" + 
              x + "," + y + ") is \n");
		var i: Int = x;
		while (i <= y)
		{
			if (this.isPerfectNo(i))
			{
				// When number is perfect number
				print("  " + i);
				// Change result status
				result = true;
			}
			i += 1;
		}
		if (result == false)
		{
			print("\n None \n");
		}
	}
}
fun main(args: Array < String > ): Unit
{
	val task: PerfectNumber = PerfectNumber();
	// Test A
	val x: Int = 1;
	val y: Int = 200;
	task.findPerfectNo(x, y);
}

Output

 Perfect number in range of (1,200) is
  6  28




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment