Q:

Write a C Program to Find sum of proper divisors of number using Recursion

0

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.

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

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 recursive call of the function.
  • 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 : :


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 : :

/* 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 **************


************* 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

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

C Recursion Solved Programs – C Programming

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now
Write a C Program to Display a number in words usi... >>
<< Write a C Program to find whether number is perfec...