printing of perfect numbers

cindrilla's Avatar, Join Date: Sep 2010
Go4Expert Member
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();
}
teacher's Avatar, Join Date: Mar 2011
Contributor
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();
}