VFP求1000以内的完数,我写了个程序运行不出结果,不知道哪里错了,求高手帮忙

CLEAR
S=0
FOR X=2 TO 1000
FOR I=1 TO X-1
IF X%I=0
S=S+I
ENDIF
ENDFOR
IF S=X
? X
ENDIF
ENDFOR

每次开始循环时,要s的初值都应该是从0开始。你的 s=0 位置错了。

CLEAR
FOR X=2 TO 1000
s=0
FOR I=1 TO X-1
IF X%I=0
S=S+I
ENDIF
ENDFOR
IF S=X
? X
ENDIF
ENDFOR
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-16
注意S=0的位置,要放在循环内部
CLEAR
FOR X=2 TO 1000
S=0
FOR I=1 TO X-1
IF X%I=0
S=S+I
ENDIF
ENDFOR
IF S=X
? X
ENDIF
ENDFOR
第2个回答  2011-04-16
我的方法:
CLEAR
FOR X=2 TO 1000
S=1
FOR I=2 TO X-1
IF MOD(X,I)=0
S=0
EXIT
ENDIF
ENDFOR
IF S=1
? X
ENDIF
ENDFOR
相似回答