printing of perfect numbers

Go4Expert Member
21Apr2011,18:09   #1
cindrilla's Avatar
hi friends i tried this logic to print the perfect numbers but there is no output at all pls can any one tell me wht's the mistake is?the code is as follows
main()
{
int i,j,sum=0;
for(i=1;i<=1000;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0)
sum=sum+j;
}
if(sum==i)
printf("%d",i);
}
getch();
}
Contributor
22Apr2011,13:30   #2
teacher's Avatar
your logic is correct but you forget to reinitialize sum=0
here is the correct code..
Code:
main()
{
int i,j,sum=0;
for(i=1;i<=1000;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0)
sum=sum+j;
}
if(sum==i)
printf("%d",i);
sum=0; // insert this line in your code...
}
getch();
}