#include <stdio.h>
int main(void)
{
int i,j, sum=0,m,n,flag=0,a[1000],count=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum+=j;
}
}
if(sum==i)
{
a[count++]=i;
}
sum=0;
}
for(i=0;i<count;i++)
{
printf("%d its factors are 1", a[count]);
for(j=2;a[count]>j;j++)
{
if(a[count]%j==0)
{
printf(",%d",j);
}
}
puts("");
}
if(flag==0)
{
printf("Not Found!");
}
return 0;
}
#include <stdio.h>
int main(void)
{
int i,j, sum=0,m,n,a[1000],count=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum+=j;
}
}
if(sum==i)
{
a[count++]=i;
}
sum=0;
}
for(i=0;i<count;i++)
{
printf("%d its factors are 1", a[i]);
for(j=2;a[i]>j;j++)
{
if(a[i]%j==0)
{
printf(",%d",j);
}
}
puts("");
}
if(count==0)
{
printf("Not Found!");
}
return 0;
}
循环内都没有改变过flag
问题是找范围内的完数