vault backup: 2023-09-29 15:58:43

This commit is contained in:
2023-09-29 15:58:43 +02:00
parent 81fd480fbd
commit 3471ec7283
2 changed files with 24 additions and 9 deletions

View File

@ -499,13 +499,28 @@ let is_perfect n =
if n < 1 then
invalid_arg "is_perfect: undefinded for n < 1"
else
let rec perfect n d =
if n mod d = 0 then
else if d*d > n then
true
else
perfect (d + 1)
in perfect n d;;
let rec perfect d =
if d = n then
1
else if n mod d > n then
d + perfect (d + 1)
else
perfect (d + 1)
in perfect d;;
(*v2*)
let is_perfect n =
if n < 1 then
invalid_arg "is_perfect: undefinded for n < 1"
else
let rec perfect d =
if d*d >= n then
1 + (if d*d = n then d else 0)
else if n mod d > n then
d + n/d + sumd (d+1)
else
perfect (d + 1)
in perfect d;;
```
## Hanoi
```Ocaml