#include <stdio.h> int main () { int i=0,j=0,s=0,n=0; scanf("%d",&n); for(i=3;i<=n;i++) { s=0; for(j=1;j<i;j++) { if(i%j==0) s=s+j; } if(i==s) { printf("%d\n",i); } } return 0; } //在这个程序里,i, j之间的逻辑关系错了很多次,尤其是 ij的初始值应该怎么取值,以及因为有两个循环,所以还得深思熟虑,多练才行。