#include<stdio.h>
int factorsum(int i);
int main()
{
int a,b,i,l;
while(scanf("%d%d",&a,&b)!=EOF)
{
factorsum(i);
}
return 0;
}
int factorsum(int i)
{
int n,h,s,a,b,l;
for(i=a;i<=b;i++)
{
s=0; l=0 ;
for(n=1;n<=i/2;n++)
{
if(i%n==0)
{
s=s+n;}
}
if(s==i)
{l++;}
if(l=1)
{printf("%d",i);}else{
printf(" %d",i);}
}
printf("\n");
}
代码修改如下,如有帮助,请帮忙采纳一下,谢谢。:
#include<stdio.h>
int factorsum(int i);
int main()
{
int a,b,i,l;
while(scanf("%d%d",&a,&b)!=EOF)
{
l = 0;
for(i=a;i<=b;i++)
{
if(factorsum(i))
{
if(l==0) { printf("%d",i); l++;}
else printf(" %d",i);
}
}
printf("\n");
}
return 0;
}
int factorsum(int n)
{
int i,sum = 0,t;
for(i=1;i<n;i++)
{
if(n%i==0)
{
sum += i;
}
}
if(sum == n) return 1;
return 0;
}
少了一个等于号,在%d后面加空格,修改如下:
if(s==i){
l++;
}
if(l==1){
printf("%d ",i);
}else{
printf("%d ",i);
}