VFP求帮忙改错找出1000以内的所有完数,并统计个数.完数是指:数的各因子之和正好等于该数本身(例如6的因子是1,2,3,而 1+2+3=6,所以6是完数)ClearNc=0For n1=1 to 1000M=0For n2=1 to n1-1If n1/n2=mod(n1,n2)M=

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/11 23:23:49
VFP求帮忙改错找出1000以内的所有完数,并统计个数.完数是指:数的各因子之和正好等于该数本身(例如6的因子是1,2,3,而 1+2+3=6,所以6是完数)ClearNc=0For n1=1 to 1000M=0For n2=1 to n1-1If n1/n2=mod(n1,n2)M=
xS]OA+SR!mj ѤF} v 5RJk?l1VDaQLwɿ;3 &m/3wssg{Z\:—9k󴶙8U<yխ%+(cey|zR={k혥8zY2؀K;_7OW񋌕wϫY~nvCb^P$x/ۉ ^g(1U%Iam(*zT )( CE`e.E#ܟ :)xAmڧr@A6eZj u[- Qg꠸SR_֔5qbڊШB:_ceʤ::h/_sFY*w8GF+oRY^٧~lmT=<ɼ9'бiV<OgZ|][e)6jS&Dec݂Y+fi=1za}.}d,aD u5s(2ggJO]~zhФ!Q1=86v4u;R&tNQ^ay,Y1TMB4 7b7rY' b@c2F7rڵ}\J_9

VFP求帮忙改错找出1000以内的所有完数,并统计个数.完数是指:数的各因子之和正好等于该数本身(例如6的因子是1,2,3,而 1+2+3=6,所以6是完数)ClearNc=0For n1=1 to 1000M=0For n2=1 to n1-1If n1/n2=mod(n1,n2)M=
VFP求帮忙改错
找出1000以内的所有完数,并统计个数.
完数是指:数的各因子之和正好等于该数本身(例如6的因子是1,2,3,而 1+2+3=6,所以6是完数)
Clear
Nc=0
For n1=1 to 1000
M=0
For n2=1 to n1-1
If n1/n2=mod(n1,n2)
M=m+n2
Endif
Endfor
If n1=m
n1
Nc=nc+1
Endif
Endfor
Wait window "完整的个数为"+STR(NC)
哪里错了啊?

VFP求帮忙改错找出1000以内的所有完数,并统计个数.完数是指:数的各因子之和正好等于该数本身(例如6的因子是1,2,3,而 1+2+3=6,所以6是完数)ClearNc=0For n1=1 to 1000M=0For n2=1 to n1-1If n1/n2=mod(n1,n2)M=
* 第六行写错了,只要有没有余数即可,VFP6调试通过
Clear
Nc=0
For n1=1 to 1000
M=0
For n2=1 to n1-1
* If n1/n2=mod(n1,n2) && 这行错了!改成下面的就行,结果:6,28,496,共三个
If mod(n1,n2)=0
M=m+n2
Endif
Endfor
If n1=M
n1
Nc=nc+1
Endif
Endfor
Wait window "完整的个数为"+STR(NC)

Clear
Create Cursor lsb (完数 N(4))
LOCAL n_sr,c_sc,n_gs,n_he,n_bs
n_sr=1000
Store 0 To n_gs,n_he
c_sc=[]
For i=4 To n_sr
n_he=0
n_bs=Ceiling(i/2)
For j=1 To n_bs...

全部展开

Clear
Create Cursor lsb (完数 N(4))
LOCAL n_sr,c_sc,n_gs,n_he,n_bs
n_sr=1000
Store 0 To n_gs,n_he
c_sc=[]
For i=4 To n_sr
n_he=0
n_bs=Ceiling(i/2)
For j=1 To n_bs
If Mod(i,j)=0
n_he=n_he+j
Endif
Endf
If n_he=i
Insert Into lsb Values (i)
Endif
Endf
?[共有]+Alltrim(Str(Reccount([lsb])))+[个完数。]
SELECT lsb
brow

收起