Bash shell script to find if a number is perfect or not Last Updated : 05 Sep, 2022 Summarize Comments Improve Suggest changes Share Like Article Like Report 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 LoopRead the input using the read command.Then run while loop with condition i <= no/2 .Check if no%i is equals to 0 or not if true then add i to ans .After getting out of the while loop checks if the obtained value of variable sum is equal to no variable or not.If equals then return "$no is a perfect number " else "$no is not a perfect number " using echo command.# !/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 Fig= output 1 2) not a perfect number Fig= output 2Method 2: Using For LoopRead the input using the read command.Then use for loop and iterate until no(input).Check if no%i is equaled to 0 or not if true then add i to ans .After getting out of for loop check if the obtained value of the variable sum is equal to no variable or not .If equals then return "$no is a perfect number " else "$no is not a perfect number " using echo command.# !/bin/bash echo "Enter a number" read no i=1 ans=0 for i in 1 2 3 4 5 .. no do if [[ $((no%i)) -eq 0 ]] then ans=$((ans + i)) fi i=`expr $i + 1` done if [ $no -eq $ans ] then echo "$no is perfect" else echo "$no is NOT perfect" fi Output: 1) perfect number Fig= perfect 2) not perfect number Fig=not perfect Time complexity: O(n) as using a loop Auxiliary space: O(1) Comment More infoAdvertise with us K kamal251199 Follow Improve Article Tags : Linux-Unix Shell Script Linux-Shell-Commands Similar Reads Linux Commands Cheat Sheet Linux, often associated with being a complex operating system primarily used by developers, may not necessarily fit that description entirely. While it can initially appear challenging for beginners, once you immerse yourself in the Linux world, you may find it difficult to return to your previous W 13 min read Linux/Unix Tutorial Linux is one of the most widely used open-source operating systems. It's fast, secure, stable, and powers everything from smartphones and servers to cloud platforms and IoT devices. Linux is especially popular among developers, system administrators, and DevOps professionals.Linux is:A Unix-like OS 10 min read 25 Basic Linux Commands For Beginners [2025] While performing a task, we all need shortcuts. Shortcuts help us to complete a task quickly. Linux comes with such commands which are one to two words, using that commands, you can perform several operations in no time. As a beginner, you must be aware of those basic Linux commands to complete an o 13 min read grep command in Unix/Linux The grep command is one of the most useful tools in Linux and Unix systems. It is used to search for specific words, phrases, or patterns inside text files, and shows the matching lines on your screen. Syntax of grep Command in Unix/LinuxThe basic syntax of the `grep` command is as follows:grep [opt 6 min read Sed Command in Linux/Unix With Examples The SED command (short for Stream Editor) is one of the most powerful tools for text processing in Linux and Unix systems. It's commonly used for tasks like search and replace, text transformation, and stream editing.With SED, you can manipulate text files without opening them in an editor. This mak 8 min read AWK command in Unix/Linux with examples Awk is a scripting language used for manipulating data and generating reports. The awk command programming language requires no compiling and allows the user to use variables, numeric functions, string functions, and logical operators. Awk is a utility that enables a programmer to write tiny but eff 8 min read Introduction to Linux Shell and Shell Scripting If we are using any major operating system, we are indirectly interacting with the shell. While running Ubuntu, Linux Mint, or any other Linux distribution, we are interacting with the shell by using the terminal. In this article we will discuss Linux shells and shell scripting so before understandi 8 min read How to Find a File in Linux | Find Command The find command in Linux is used to search for files and directories based on name, type, size, date, or other conditions. It scans the specified directory and its sub directories to locate files matching the given criteria.find command uses are:Search based on modification time (e.g., files edited 9 min read ZIP command in Linux with examples In Linux, the zip command compresses one or more files or directories into a single.zip archive file. This saves disk space, keeps data organized, and makes it simple to share or backup files. It's among the most used compression utilities, particularly when sharing large files via email or storing 6 min read What is Linux Operating System The Linux Operating System is a type of operating system that is similar to Unix, and it is built upon the Linux Kernel. The Linux Kernel is like the brain of the operating system because it manages how the computer interacts with its hardware and resources. It makes sure everything works smoothly a 13 min read Like