## C program to find all Abundant numbers from 1 to 100:

In this post, we will learn how to find all *abundant* numbers from *1* to *100* in C programming language. *Abundant* numbers are also called *Excessive* numbers. It is a number which is smaller than the *sum* of its *proper divisors*.

If we need find all abundant numbers in a range, we have to write a function to check if a specific number is *abundant* or not. This function can be used with a loop to find all abundant numbers in a given range.

With this program, you will learn how to use functions in C, how to read user inputs and how to do mathematical calculations in C.

### Abundant number:

A number is called a *abundant* number or *excessive* number if the sum of its proper divisors is greater than the number itself.

*12* is the first Abundant number because its proper divisors are *1, 2, 3, 4* and *6*. The total is *16*, which is larger than *12*.

### Algorithm to find Abundant numbers from 1 to 100:

We will use the below algorithm in the *C* program:

- Run a loop from
*1*to*100*. - Inside the loop, check for each number if it is an
*abundant*number or not.- To check if a number is
*abundant*, we will use another loop. - This loop will run from
*1*to*number - 1*and it will find all proper divisors of the number. - If the sum of all proper divisors for a number is greater than the number, it is an
*abundant*number.

- To check if a number is
- If an
*Abundant*number is found, print it. Else, move to the next iteration of the loop.

### Method 1: C program to find abundant numbers from 1 to 100 using for loop:

Below is the complete *C program* to find all Abundant numbers from *1* to *100*:

```
#include <stdio.h>
int isAbundant(int n)
{
int sum = 0;
for (int i = 1; i < n; i++)
{
if (n % i == 0)
{
sum += i;
}
}
return sum > n;
}
int main()
{
printf("Abundant numbers within 1 to 100 are: ");
for (int i = 1; i <= 100; i++)
{
if (isAbundant(i))
{
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```

In this program:

- The
*main*function runs first. It uses a*for loop*to find all abundant numbers from*1*to*100*. - Inside the loop, it calls the
*isAbundant*function to check if the current value of*i*is an abundant number or not. - If yes, it prints that number.
- The
*isAbundant*function check if a specific number is an abundant number or not.- The
*sum*variable is initialized as*0*to hold the sum of all proper divisors. - The
*for loop*runs from*i = 1*to*i = n - 1*. On each iteration, it checks if*i*is a*proper divisor*of the number or not. - If yes, it adds the value of
*i*to*sum*. - Once the loop ends, it returns
*1*if the sum is greater than the number. Else, it returns*0*.

- The
- If
*isAbundant*returns*1*, it prints that number.

#### Output:

If you run this program, it will print the below output:

`Abundant numbers within 1 to 100 are: 12 18 20 24 30 36 40 42 48 54 56 60 66 70 72 78 80 84 88 90 96 100 `

### Method 2: C program to find abundant numbers from 1 to 100 using while loop:

We can also write the above program using *while loops*. Below is the complete program:

```
#include <stdio.h>
int isAbundant(int n)
{
int sum = 0, i = 1;
while (i < n)
{
if (n % i == 0)
{
sum += i;
}
i++;
}
return sum > n;
}
int main()
{
int i = 1;
printf("Abundant numbers within 1 to 100 are: ");
while (i <= 100)
{
if (isAbundant(i))
{
printf("%d ", i);
}
i++;
}
printf("\n");
return 0;
}
```

The only difference is that we are using *while* loops instead of *for* loops in this program. This program will given the same output.

`Abundant numbers within 1 to 100 are: 12 18 20 24 30 36 40 42 48 54 56 60 66 70 72 78 80 84 88 90 96 100 `

### Reference:

### You might also like:

- C itoa() function implementation explanation with example
- C program to write and read structures to and from a file
- C program to check if a number is a disarium number or not
- C program to check if a number is Abundant or Excessive
- C program to find if a number is a Deficient number or not
- C program isxdigit method example to check if a character is hexadecimal