c语言输入m和n,输出m-n之间的所有完数

2024-12-26 16:07:23
推荐回答(2个)
回答1:

C程序如下:

#include 

void main()
{
int m, n;
int i, j;
int sum;

printf("请输入范围m,n:");
scanf("%d%d", &m, &n);

for(i=m; i<=n; i++)
{
for(j=1, sum=0; j<=i/2; j++)
if(i % j == 0)
sum += j;

if(sum == i)
printf("%d\n", i);
}
}


运行测试:

请输入范围m,n:1 100
6
28

回答2:

#include
#include
void main()
{
int i=1;
int j;
int sum=1;
int m,n;
printf("int put m,n: ") ;
scanf("%d,%d",&m,&n);
for(i=m;i {
for(j=2;j<=sqrt(i);j++)
{
if(i%j==0&&i/j!=i)
{
if(i/j==j)
sum+=j;
else
sum+=i/j+j;
}
}
if (sum==i&&i!=1)
printf("%d\n",i);
sum=1;

}
system("pause");
}