#include
int main()
{
int n,i;
int m=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(int j=1;j
{
if(i%j==0)
m=m+j;}
if(m==i)
printf("%d",m);
}
return 0;
}
运行不出来,哪错了?
在第二个for前面加上 m=0; 否则m的值一直累加了,还有最后的printf输出加上 \n 或者空格,将多个数字分开显示
#include<stdio.h>
int main()
{
int n,i;
int m=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
m = 0;
for(int j=1;j<i;j++)
{
if(i%j==0)
m=m+j;
}
if(m==i)
printf("%d\n",m);
}
return 0;
}