diff --git a/lab 5/NumberTraversal/NumberTraversal.fsproj b/lab 5/NumberTraversal/NumberTraversal.fsproj
new file mode 100755
index 0000000..299cf40
--- /dev/null
+++ b/lab 5/NumberTraversal/NumberTraversal.fsproj
@@ -0,0 +1,12 @@
+
+
+
+ Exe
+ net7.0
+
+
+
+
+
+
+
diff --git a/lab 5/NumberTraversal/Program.fs b/lab 5/NumberTraversal/Program.fs
new file mode 100755
index 0000000..2cba6bd
--- /dev/null
+++ b/lab 5/NumberTraversal/Program.fs
@@ -0,0 +1,33 @@
+// For more information see https://aka.ms/fsharp-console-apps
+printfn "Hello from F#"
+
+let rec traverseNumber' n f acc =
+ match n with
+ | 0 -> acc
+ | n -> traverseNumber' (n / 10) f (f acc (n % 10))
+
+let traverseNumber n f init = traverseNumber' n f init
+
+let sum x y = x + y
+let mul x y = x * y
+let min x y = if x < y then x else y
+let max x y = if x > y then x else y
+
+[]
+let main argv =
+ System.Console.WriteLine("Введите число:")
+ let number = System.Console.ReadLine() |> int
+
+ let sumResult = traverseNumber number sum 0
+ System.Console.WriteLine($"Сумма цифр: {sumResult}")
+
+ let mulResult = traverseNumber number mul 1
+ System.Console.WriteLine($"Произведение цифр: {mulResult}")
+
+ let minResult = traverseNumber number min System.Int32.MaxValue
+ System.Console.WriteLine($"Минимальная цифра: {minResult}")
+
+ let maxResult = traverseNumber number max 0
+ System.Console.WriteLine($"Максимальная цифра: {maxResult}")
+
+ 0