Deficient Number
The problem being addressed is to determine whether a given number is a Deficient number or not. A Deficient number is a positive integer for which the sum of its proper divisors (excluding itself) is less than the number itself. This concept is used to classify numbers based on their properties and relationships with their divisors.
Problem Statement and Description
Given a positive integer, the goal is to determine whether it is a Deficient number or not. A Deficient number is one where the sum of its proper divisors (excluding itself) is less than the number itself. For example, the number 15 has divisors 1, 3, and 5. The sum of these divisors is 9, which is less than 15, making 15 a Deficient number.
The first few deficient numbers are: 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 19, 21, 22, 23, 25, 26, 27, 29, 31, 32, 33, 34, 35, 37, 38, 39, 41, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 55, 57, 58, 59, 61, 62, 63, 65, 67, 68, 69, 71, 73, 74, 75, 76, 77, 79, 81, 82, 83, 85, 86, 87, 88, 89, 91, 92, 93, 94, 95, 97, 98, 99, 100, 101, etc.
Idea to Solve the Problem
To determine if a number is a Deficient number, we need to calculate the sum of its proper divisors (excluding itself) and compare it with the number itself multiplied by 2. If the sum is less than 2 times the number, then it is a Deficient number.
Pseudocode
divisor_sum(number):
result = number
for i from 1 to number/2:
if number % i == 0:
result += i
return result
is_deficient(number):
if divisor_sum(number) < 2 * number:
print number, "Is a Deficient Number"
else:
print number, "Is not a Deficient Number"
Algorithm Explanation
- Create a function
divisor_sum(number)
that calculates the sum of the proper divisors (excluding itself) of the given number. Iterate through numbers from 1 tonumber/2
. If the current number dividesnumber
evenly (i.e.,number % i == 0
), add it to the result. - Create a function
is_deficient(number)
that determines whether a number is a Deficient number or not. Call thedivisor_sum
function to get the sum of proper divisors. Compare the sum with 2 times the number to determine if it is a Deficient number. - In the
main()
function, callis_deficient
for different test cases.
Code Solution
//C Program
//Check if a given number is deficient or not
#include <stdio.h>
// Function which is calculate sum of divisors in given number
int divisor_sum(int number)
{
//numbers are always on itself divide
int result = number;
for (int i=1; i<= number/2; i++)
{
if (number%i==0)
{
//When number is divide by i
result += i;
}
}
return result;
}
//Function are show the result number is deficient or not
void is_deficient(int number)
{
//Check whether number divisor sum is less than twice given number?
if(divisor_sum(number) < 2 * number)
{
//When Yes
printf("%d Is an Deficient Number\n",number);
}
else
{
//When No
printf("%d Is not a Deficient Number\n",number);
}
}
int main() {
//Test Cases
is_deficient(15);
is_deficient(20);
is_deficient(12);
is_deficient(17);
is_deficient(23);
return 0;
}
Output
15 Is an Deficient Number
20 Is not a Deficient Number
12 Is not a Deficient Number
17 Is an Deficient Number
23 Is an Deficient Number
/*
C++ Program
Check if a given number is deficient or not
*/
#include<iostream>
using namespace std;
class MyNumber {
public:
// Function which is calculate sum of divisors in given number
int divisor_sum(int number) {
//numbers are always on itself divide
int result = number;
for (int i = 1; i <= number / 2; i++) {
if (number % i == 0) {
//When number is divide by i
result += i;
}
}
return result;
}
//Function are show the result number is deficient or not
void is_deficient(int number) {
//Check whether number divisor sum is less than twice given number?
if (this->divisor_sum(number) < 2 *number) {
//When Yes
cout << number << " Is an Deficient Number\n";
} else {
//When No
cout << number << " Is not a Deficient Number\n";
}
}
};
int main() {
MyNumber obj ;
// Test Case
obj.is_deficient(15);
obj.is_deficient(20);
obj.is_deficient(12);
obj.is_deficient(17);
obj.is_deficient(23);
return 0;
}
Output
15 Is an Deficient Number
20 Is not a Deficient Number
12 Is not a Deficient Number
17 Is an Deficient Number
23 Is an Deficient Number
/*
Java Program
Check if a given number is deficient or not
*/
public class MyNumber {
// Function which is calculate sum of divisors in given number
public int divisor_sum(int number)
{
//numbers are always on itself divide
int result = number;
for (int i=1; i<= number/2; i++)
{
if (number%i==0)
{
//When number is divide by i
result += i;
}
}
return result;
}
//Function are show the result number is deficient or not
public void is_deficient(int number)
{
//Check whether number divisor sum is less than twice given number?
if(divisor_sum(number) < 2 * number)
{
//When Yes
System.out.print(number+" Is an Deficient Number\n");
}
else
{
//When No
System.out.print(number+" Is not a Deficient Number\n");
}
}
public static void main(String[] args) {
MyNumber obj = new MyNumber();
// Test Case
obj.is_deficient(15);
obj.is_deficient(20);
obj.is_deficient(12);
obj.is_deficient(17);
obj.is_deficient(23);
}
}
Output
15 Is an Deficient Number
20 Is not a Deficient Number
12 Is not a Deficient Number
17 Is an Deficient Number
23 Is an Deficient Number
/*
C# Program
Check if a given number is deficient or not
*/
using System;
public class MyNumber {
// Function which is calculate sum of divisors in given number
public int divisor_sum(int number) {
//numbers are always on itself divide
int result = number;
for (int i = 1; i <= number / 2; i++) {
if (number % i == 0) {
//When number is divide by i
result += i;
}
}
return result;
}
//Function are show the result number is deficient or not
public void is_deficient(int number) {
//Check whether number divisor sum is less than twice given number?
if (divisor_sum(number) < 2 * number) {
//When Yes
Console.Write(number + " Is an Deficient Number\n");
} else {
//When No
Console.Write(number + " Is not a Deficient Number\n");
}
}
public static void Main(String[] args) {
MyNumber obj = new MyNumber();
// Test Case
obj.is_deficient(15);
obj.is_deficient(20);
obj.is_deficient(12);
obj.is_deficient(17);
obj.is_deficient(23);
}
}
Output
15 Is an Deficient Number
20 Is not a Deficient Number
12 Is not a Deficient Number
17 Is an Deficient Number
23 Is an Deficient Number
# Python 3 Program
# Check if a given number is deficient or not
class MyNumber :
# Function which is calculate sum of divisors in given number
def divisor_sum(self, number) :
#numbers are always on itself divide
result = number
i = 1
while (i <= int(number / 2)) :
if (number % i == 0) :
#When number is divide by i
result += i
i += 1
return result
#Function are show the result number is deficient or not
def is_deficient(self, number) :
#Check whether number divisor sum is less than twice given number?
if (self.divisor_sum(number) < 2 * number) :
print(number ," Is an Deficient Number")
else :
print(number ," Is not a Deficient Number")
def main() :
obj = MyNumber()
#Test Case
obj.is_deficient(15)
obj.is_deficient(20)
obj.is_deficient(12)
obj.is_deficient(17)
obj.is_deficient(23)
if __name__ == "__main__":
main()
Output
15 Is an Deficient Number
20 Is not a Deficient Number
12 Is not a Deficient Number
17 Is an Deficient Number
23 Is an Deficient Number
# Ruby Program
# Check if a given number is deficient or not
class MyNumber
# Function which is calculate sum of divisors in given number
def divisor_sum(number)
#numbers are always on itself divide
result = number
i = 1
while (i <= number / 2)
if (number % i == 0)
#When number is divide by i
result += i
end
i += 1
end
return result
end
#Function are show the result number is deficient or not
def is_deficient(number)
#Check whether number divisor sum is less than twice given number?
if (self.divisor_sum(number) < 2 * number)
print(number ," Is an Deficient Number\n")
else
print(number ," Is not a Deficient Number\n")
end
end
end
def main()
obj = MyNumber.new()
#Test Case
obj.is_deficient(15)
obj.is_deficient(20)
obj.is_deficient(12)
obj.is_deficient(17)
obj.is_deficient(23)
end
main()
Output
15 Is an Deficient Number
20 Is not a Deficient Number
12 Is not a Deficient Number
17 Is an Deficient Number
23 Is an Deficient Number
/*
Scala Program
Check if a given number is deficient or not
*/
class MyNumber {
// Function which is calculate sum of divisors in given number
def divisor_sum(number: Int): Int = {
//numbers are always on itself divide
var result: Int = number;
var i: Int = 1;
while (i <= number / 2) {
if (number % i == 0) {
//When number is divide by i
result += i;
}
i += 1;
}
return result;
}
//Function are show the result number is deficient or not
def is_deficient(number: Int): Unit = {
//Check whether number divisor sum is less than twice given number?
if (this.divisor_sum(number) < 2 * number) {
print(s"$number Is an Deficient Number\n");
} else {
print(s"$number Is not a Deficient Number\n");
}
}
}
object Main {
def main(args: Array[String]): Unit = {
var obj: MyNumber = new MyNumber();
//Test Case
obj.is_deficient(15);
obj.is_deficient(20);
obj.is_deficient(12);
obj.is_deficient(17);
obj.is_deficient(23);
}
}
Output
15 Is an Deficient Number
20 Is not a Deficient Number
12 Is not a Deficient Number
17 Is an Deficient Number
23 Is an Deficient Number
/*
Swift 4 Program
Check if a given number is deficient or not
*/
class MyNumber {
// Function which is calculate sum of divisors in given number
func divisor_sum(_ number: Int) -> Int {
//numbers are always on itself divide
var result: Int = number;
var i: Int = 1;
while (i <= number / 2) {
if (number % i == 0) {
//When number is divide by i
result += i;
}
i += 1;
}
return result;
}
//Function are show the result number is deficient or not
func is_deficient(_ number: Int) {
//Check whether number divisor sum is less than twice given number?
if (self.divisor_sum(number) < 2 * number) {
print(number ," Is an Deficient Number");
} else {
print(number ," Is not a Deficient Number");
}
}
}
func main() {
let obj: MyNumber = MyNumber();
//Test Case
obj.is_deficient(15);
obj.is_deficient(20);
obj.is_deficient(12);
obj.is_deficient(17);
obj.is_deficient(23);
}
main();
Output
15 Is an Deficient Number
20 Is not a Deficient Number
12 Is not a Deficient Number
17 Is an Deficient Number
23 Is an Deficient Number
<?php
/*
Php Program
Check if a given number is deficient or not
*/
class MyNumber {
// Function which is calculate sum of divisors in given number
public function divisor_sum($number) {
//numbers are always on itself divide
$result = $number;
for ($i = 1; $i <= intval($number / 2); $i++) {
if ($number % $i == 0) {
//When number is divide by i
$result += $i;
}
}
return $result;
}
//Function are show the result number is deficient or not
public function is_deficient($number) {
//Check whether number divisor sum is less than twice given number?
if ($this->divisor_sum($number) < 2 *$number) {
//When Yes
echo($number ." Is an Deficient Number\n");
} else {
//When No
echo($number ." Is not a Deficient Number\n");
}
}
};
function main() {
$obj = new MyNumber();
// Test Case
$obj->is_deficient(15);
$obj->is_deficient(20);
$obj->is_deficient(12);
$obj->is_deficient(17);
$obj->is_deficient(23);
}
main();
Output
15 Is an Deficient Number
20 Is not a Deficient Number
12 Is not a Deficient Number
17 Is an Deficient Number
23 Is an Deficient Number
/*
Node Js Program
Check if a given number is deficient or not
*/
class MyNumber {
// Function which is calculate sum of divisors in given number
divisor_sum(number) {
//numbers are always on itself divide
var result = number;
for (var i = 1; i <= parseInt(number / 2); i++) {
if (number % i == 0) {
//When number is divide by i
result += i;
}
}
return result;
}
//Function are show the result number is deficient or not
is_deficient(number) {
//Check whether number divisor sum is less than twice given number?
if (this.divisor_sum(number) < 2 *number) {
//When Yes
process.stdout.write(number + " Is an Deficient Number\n");
} else {
//When No
process.stdout.write(number + " Is not a Deficient Number\n");
}
}
}
function main(args) {
var obj = new MyNumber();
// Test Case
obj.is_deficient(15);
obj.is_deficient(20);
obj.is_deficient(12);
obj.is_deficient(17);
obj.is_deficient(23)
}
main();
Output
15 Is an Deficient Number
20 Is not a Deficient Number
12 Is not a Deficient Number
17 Is an Deficient Number
23 Is an Deficient Number
Time Complexity Analysis
For a given number n
, the divisor_sum
function iterates through numbers from 1 to
n/2
, checking for divisibility. Therefore, the time complexity of the divisor_sum
function
is O(n/2), which simplifies to O(n). The is_deficient
function calls divisor_sum
and
performs a constant-time comparison. Overall, the algorithm's time complexity is O(n), where n is the given number.
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