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/06/22 07:09:37
![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=](/uploads/image/z/12972447-63-7.jpg?t=VFP%E6%B1%82%E5%B8%AE%E5%BF%99%E6%94%B9%E9%94%99%E6%89%BE%E5%87%BA1000%E4%BB%A5%E5%86%85%E7%9A%84%E6%89%80%E6%9C%89%E5%AE%8C%E6%95%B0%2C%E5%B9%B6%E7%BB%9F%E8%AE%A1%E4%B8%AA%E6%95%B0.%E5%AE%8C%E6%95%B0%E6%98%AF%E6%8C%87%EF%BC%9A%E6%95%B0%E7%9A%84%E5%90%84%E5%9B%A0%E5%AD%90%E4%B9%8B%E5%92%8C%E6%AD%A3%E5%A5%BD%E7%AD%89%E4%BA%8E%E8%AF%A5%E6%95%B0%E6%9C%AC%E8%BA%AB%EF%BC%88%E4%BE%8B%E5%A6%826%E7%9A%84%E5%9B%A0%E5%AD%90%E6%98%AF1%2C2%2C3%2C%E8%80%8C+1%2B2%2B3%3D6%2C%E6%89%80%E4%BB%A56%E6%98%AF%E5%AE%8C%E6%95%B0%EF%BC%89ClearNc%3D0For+n1%3D1+to+1000M%3D0For+n2%3D1+to+n1-1If+n1%2Fn2%3Dmod%28n1%2Cn2%29M%3D)
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
收起