diff --git a/exercise_0104/foo.txt b/exercise_0104/foo.txt
new file mode 100644
index 0000000000000000000000000000000000000000..76cff5cf69054855a0a90573cec891160cfbab27
--- /dev/null
+++ b/exercise_0104/foo.txt
@@ -0,0 +1 @@
+001: Hallo, Marcus
diff --git a/exercise_0104/go.mod b/exercise_0104/go.mod
new file mode 100644
index 0000000000000000000000000000000000000000..13c5136aba494c217ae05b5248f73e5d68159980
--- /dev/null
+++ b/exercise_0104/go.mod
@@ -0,0 +1,3 @@
+module gitlab.reutlingen-university.de/go-exercises/go-starter/exercise_0104
+
+go 1.20
diff --git a/exercise_0104/main.go b/exercise_0104/main.go
new file mode 100644
index 0000000000000000000000000000000000000000..08b7b4478c3c1203cf4bcf97299267684253d9fe
--- /dev/null
+++ b/exercise_0104/main.go
@@ -0,0 +1,33 @@
+package main
+
+import (
+	"fmt"
+	"os"
+)
+
+func main() {
+	PrintGreeting()
+	PrintGreeting2()
+	PrintGreeting3()
+}
+
+func PrintGreeting() {
+	var nr = 1
+	var name = "Marcus"
+	fmt.Printf("%03d: Hallo, %s\n", nr, name)
+}
+
+func PrintGreeting2() {
+	var nr = 1
+	var name = "Marcus"
+	s := fmt.Sprintf("%03d: Hallo, %s\n", nr, name)
+	fmt.Println(s)
+}
+
+func PrintGreeting3() {
+	file, _ := os.Create("foo.txt")
+	var nr = 1
+	var name = "Marcus"
+	fmt.Fprintf(file, "%03d: Hallo, %s\n", nr, name)
+	file.Close()
+}