From 3471ec7283738878e9071cd4c790fa040b51a8f9 Mon Sep 17 00:00:00 2001 From: Louis Date: Fri, 29 Sep 2023 15:58:43 +0200 Subject: [PATCH] vault backup: 2023-09-29 15:58:43 --- .obsidian/workspace.json | 4 ++-- Algo/Séminaire/Exercices seminaire.md | 29 ++++++++++++++++++++------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 939c668..02fe574 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -158,8 +158,9 @@ }, "active": "a968c28ed851e4ad", "lastOpenFiles": [ - "COM-ADMR/Séjour international EPITA.md", + "Algo/Séminaire/Chapter 5 - Recursivity.md", "Algo/Séminaire/Exercices seminaire.md", + "COM-ADMR/Séjour international EPITA.md", "Algo/CM/CM du 27 septembre.md", "Algo/CM", "Electronic/Lecture 1.md", @@ -173,7 +174,6 @@ "English", "README.md", "Algo/Séminaire/Remediation.md", - "Algo/Séminaire/Chapter 5 - Recursivity.md", "COM-ADMR", "Methodologie", "Algo/Séminaire/Chapter 4 - A bit of imperative.md", diff --git a/Algo/Séminaire/Exercices seminaire.md b/Algo/Séminaire/Exercices seminaire.md index e012bb4..86debd7 100644 --- a/Algo/Séminaire/Exercices seminaire.md +++ b/Algo/Séminaire/Exercices seminaire.md @@ -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