Site icon NexonHost.com

How to create a bash shell script to find if a number is perfect or not.

How to create a bash shell script to find if a number is perfect or not.

In this article, we will discuss how to write a bash script to find if a number is perfect or not. A perfect number is defined as, a positive number that is equal to the sum of its proper divisors. Smallest no is 6 ex= 1,2,3 are divisor of 6 and 1+2+3=6

Method 1: Using While Loop

#!/bin/bash

echo "Enter a number"

# reading input from user
read no

# initializing the value of i
i=1

ans=0

# check if the value of left operand is less
# than or equal to the value of right operand
# if yes, then the condition becomes true
while [ $i -le $((no / 2)) ]
do
    # Checks if the value of two operands are
    # equal or not; if yes, then the condition
    # becomes true
    if [ $((no % i)) -eq 0 ]
    then
        ans=$((ans + i))
    fi

    i=$((i + 1))
done

# Checks if the value of two operands are equal
# or not; if yes, then the condition becomes true
if [ $no -eq $ans ]
then
    # printing output
    echo "$no is perfect"
else
    # printing output
    echo "$no is NOT perfect"
fi

Output:

  1. perfect number:

  1. not a perfect number

Method 2: Using For Loop

#!/bin/bash

echo "Enter a number"
read no

ans=0

for ((i = 1; i < no; i++))
do
    if [ $((no % i)) -eq 0 ]
    then
        ans=$((ans + i))
    fi
done

if [ $no -eq $ans ]
then
    echo "$no is perfect"
else
    echo "$no is NOT perfect"
fi

Output:

  1. perfect number

  1. not perfect number

 

 

Exit mobile version