From 364f946fdf686fd4ad31f690248519a72875f339 Mon Sep 17 00:00:00 2001 From: Frogrowl Date: Mon, 18 Aug 2025 00:09:44 +0800 Subject: [PATCH] =?UTF-8?q?Frogrowl=20=F0=9F=90=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Collatz Sequence/Collatz Sequence.py | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Collatz Sequence/Collatz Sequence.py diff --git a/Collatz Sequence/Collatz Sequence.py b/Collatz Sequence/Collatz Sequence.py new file mode 100644 index 00000000000..d9e29e52332 --- /dev/null +++ b/Collatz Sequence/Collatz Sequence.py @@ -0,0 +1,29 @@ +def collatz_steps(n): + times = 0 + while n != 1: + if n % 2 == 0: + print(f"{n} / 2", end=" ") + n = n // 2 # "//" is a floor division where it rounds down the result + else: + print(f"{n} * 3 + 1", end=" ") + n = 3 * n + 1 + print(f"= {n}") + times += 1 + print(f"The number of times to reach 1 is {times}") + +def main(): + again = "y" + while again != "n": + n = int(input("Input a number: ")) + collatz_steps(n) + while True: + again = str(input("Want to input again? y/n: ")) + if again != "n" and again != "y": + print("Incorrect Input.") + elif again == "n": + print("Thank You! Goodbye.") + break + else: + break + +main()