**C Program to Find sum of proper divisors of number **

**C Program to Find sum of proper divisors of number**

Write a C Program to Find sum of proper divisors of natural number using Recursion. Here’s simple Program to Find sum of proper divisors of natural number using Recursion in C Programming Language.

**Recursion : :**

**Recursion : :**

- Recursion is the process of repeating items in a self-similar way. In programming languages, if a program allows you to call a function inside the same function, then it is called a
of the function.**recursive call**

- The C programming language supports recursion, i.e., a function to call itself. But while using recursion, programmers need to be careful to define an exit condition from the function, otherwise it will go into an infinite loop.

- Recursive functions are very useful to solve many mathematical problems, such as calculating the factorial of a number, generating Fibonacci series, etc.

**Problem : :**

**Problem : :**

Given a natural number, calculate sum of all its proper divisors. A proper divisor of a natural number is the divisor that is strictly less than the number.

* For example*, number 20 has 5 proper divisors: 1, 2, 4, 5, 10, and the divisor summation is: 1 + 2 + 4 + 5 + 10 = 22.

**Examples:**

Input : n = 10

Output: 8

// proper divisors 1 + 2 + 5 = 8

Input : n = 36

Output: 55

// proper divisors 1 + 2 + 3 + 4 + 6 + 9 + 12 + 18 = 55

Below is the source code for C Program to Find sum of proper divisors of natural number using Recursion which is successfully compiled and run on Windows System to produce desired output as shown below :

**SOURCE CODE : :**

**SOURCE CODE : :**

/* Find sum of those proper divisors of number a*/ #include<stdio.h> int sumdiv(int num, int x); int main() { int num; printf("Enter a number : "); scanf("%d",&num); printf("\n\nSum of divisors = %d\n",sumdiv(num,num/2));\ return 0; } sumdiv(int num, int x) { if(x==1) { printf("%d \n",x); return 1; } if(num%x==0)/*if x is a proper divisor*/ { printf("%d + ",x); return x + sumdiv(num,x-1); } else return sumdiv(num,x-1); }

**OUTPUT : :**

**OUTPUT : :**

************* OUTPUT ************** ************* FIRST RUN *********** Enter a number : 100 50 + 25 + 20 + 10 + 5 + 4 + 2 + 1 Sum of divisors = 117 ************* SECOND RUN *********** Enter a number : 496 248 + 124 + 62 + 31 + 16 + 8 + 4 + 2 + 1 Sum of divisors = 496

If you found any error or any queries related to the above program or any questions or reviews , you wanna to ask from us ,you may * Contact Us* through our contact Page or you can also comment below in the comment section.We will try our best to reach upto you in the short interval.

**Thanks for reading the post….**

muniraja