#include<stdio.h>
int main()
{
int n,i,s=0;
for(n=1;n<=1000;n++)
{ for(i=1;i<=n/2;i++)
{
if(n%i==0)
s=s+i;}
if(s==n)
{ printf("%d,its factors are",n);
for(i=1;i<=n/2;i++)
{ if(n%i==0)
printf("%d",i);}
}}
return 0;
}
这个代码为啥运行不出来呀
for循环里用了i后。怎么嵌套for循环还有i?
s你忘了每次循环应该初始化,第二个i循环改成j了,还有一些其他细节错误,给你改好了
#include<stdio.h>
int main()
{
int n,i,s=0,j;
for(n=1; n<=1000; n++)
{
s=0;
for(i=1; i<=n/2; i++)
{
if(n%i==0)
s=s+i;
}
if(s==n)
{
printf("%d,its factors are",n);
for(j=1; j<=n/2; j++)
{
if(n%j==0)
printf("%d ",j);
}
printf("\n");
}
}
return 0;
}