Write a recursive function to print perfect numbers up to given number.
#include<stdio.h> int Perfect_Rec(int,int,int); int main() { int num; int i; printf("Enter Number = "); scanf("%d",&num); for(i=1;i<num;i++) { if(i == Perfect_Rec(i,1,0)) printf("%d \n",Perfect_Rec(i,1,0)); } return 0; } int Perfect_Rec(int n,int r,int s) { if(r < n) { if(!(n % r)) s = s + r; r = r + 1; Perfect_Rec(n,r,s); } else return s; }
Output
Enter Number = 10000 6 28 496 8128