#include
int main()
{int a,b,x=0;
for(a=1;a<=1000;a++)
{for(b=a/2,x=0;b>=1;b--)
{if(a%b==0)
x=x+b;}
if(a==x)
printf("%d: ",a);
for(b=a/2,x=0;b>=1;b--)
{if(a%b==0&&a/b>=1)
printf("%d",b);}}
return 0;
}
为什么我提交了两次答案都给我吞掉了?!
if(a==x)//这里应该加 { ,什么原因你懂的吧
printf("%d: ",a);
for(b=a/2,x=0;b>=1;b--)
强烈建议:
if条件后面一定要加上花括号,即使只有一条语句!!!
if条件后面一定要加上花括号,即使只有一条语句!!!
if条件后面一定要加上花括号,即使只有一条语句!!!
另外帮你调整了一下输出的格式,看着更整齐
#include<stdio.h>
int main()
{int a,b,x=0;
for(a=1;a<=1000;a++){
for(b=a/2,x=0;b>=1;b--){
if(a%b==0){
x=x+b;
}
}
if(a==x){
printf("%d:",a);
for(b=a/2,x=0;b>=1;b--){
if(a%b==0&&a/b>=1){
printf(" %d",b);
}
}
printf("\n");
}
}
return 0;
}
那必定是写错了啊
#include<stdio.h>
int main()
{int a,b;
for(a=1;a<=1000;a++)
{
int x=0;
for(b=1;b<a;b++)
{if(a%b==0)
x=x+b;}
if(a==x){
printf("%d: ",a);
for(b=1;b<a;b++)
{if(a%b==0)
printf("%d\t",b);}
printf("\n");
}
}
return 0;
}