设计一个名为 Racket 的函数findProperDivisor
,它接受一个自然数并计算其所有适当除数的总和。自然数的适当除数是严格小于该数的除数。
例子:
输入:20
输出:22
//适当的除数:1 + 2 + 4 + 5 + 10 = 22
(define (sum-of-proper-divisors n i)
(cond [(= i 1) 1]
[(= (remainder n i) 0)
(+ i (sum-of-proper-divisors n (sub1 i)))]
[else (sum-of-proper-divisors n (sub1 i))]))
我在此页面上找到了此代码,但它给了我1+2+4+5+10+20=42
我需要的代码22
。
我想通过使用递归和一个参数来编写这段代码cond
。我正在使用初级学生语言 (BSL),它没有let
定义之类的东西。