**C Program to find number is perfect or not using recursion**

**C Program to find number is perfect or not using recursion**

Write a C Program to find whether number is perfect or not using recursion. Here’s simple Program to find check whether entered number is perfect or not using recursion in C Programming Language.

*Perfect number*

*Perfect number*

A **perfect number** is a positive number that equals the sum of its divisors, excluding itself. This is also known as its aliquot sum. At this time, it is unknown how many perfect numbers truly exist in our number system.

While we have discovered 48 perfect numbers, the fact that there are an infinite number of prime numbers leads us to believe that there could be an infinite number of perfect numbers.

Perfect number are positive integers * n* such that

where * s(n)* is the restricted divisor function (i.e., the sum of proper divisors of

*), or equivalently*

**n**where is the divisor function (i.e., the sum of divisors of * n* including

*itself). For example, the first few perfect numbers are 6, 28, 496, 8128, … (OEIS A000396), since*

**n**etc.

The * n*th perfect number is implemented in the Wolfram Language as

`PerfectNumber`[

*n*] and checking to see if

*is a perfect number as*

**k**`PerfectNumberQ`[

*k*].

The first few perfect number ** Pn** are summarized in the following table together with their corresponding indices (see below).

1 | 2 | 6 |

2 | 3 | 28 |

3 | 5 | 496 |

4 | 7 | 8128 |

5 | 13 | 33550336 |

6 | 17 | 8589869056 |

7 | 19 | 137438691328 |

8 | 31 | 2305843008139952128 |

Below is the source code for C Program to find whether number is perfect or not using recursion which is successfully compiled and run on Windows System to produce desired output as shown below :

**SOURCE CODE : :**

**SOURCE CODE : :**

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
/* C Program to find whether number is perfect or not using recursion */ #include<stdio.h> int sumdiv(int num, int x); int main() { int num; printf("Enter a number :"); scanf("%d",&num); if(sumdiv(num, num/2) == num) printf("\nPerfect Number\n"); else printf("\nNot Perfect Number\n"); } sumdiv(int num, int x) { if(x==1) return 1; if(num%x==0)/*if x is a proper divisor*/ return x + sumdiv(num,x-1); else return sumdiv(num,x-1); } |

### OUTPUT : :

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
*************** OUTPUT ************** **************** FIRST RUN : ******** Enter a number :200 Not Perfect Number **************** SECOND RUN : ******** Enter a number :6 Perfect Number |

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