Saturday, 21 December 2024

Day 49 : Python Program to Test Collatz Conjecture for a Given Number


def collatz_conjecture(n):

    if n <= 0:

        print("Please enter a positive integer.")

        return

     print(f"Starting number: {n}")

    while n != 1:

        if n % 2 == 0:

            n = n // 2

        else:

            n = 3 * n + 1

        print(n, end=" ")

    print("\nReached 1!")

try:

    number = int(input("Enter a positive integer to test the Collatz conjecture: "))

    collatz_conjecture(number)

except ValueError:

    print("Invalid input! Please enter a valid integer.")

#source code --> clcoding.com 

Code Explanation:

1. Function Definition
def collatz_conjecture(n):
This function implements the Collatz sequence starting from the number n.

2. Input Validation
if n <= 0:
    print("Please enter a positive integer.")
    return
The Collatz Conjecture only applies to positive integers.
If the input n is not a positive number (e.g., 0 or a negative number), the function prints an error message and exits using return.

3. Start the Sequence
print(f"Starting number: {n}")
Prints the starting number to indicate the beginning of the Collatz sequence.

4. Collatz Algorithm
while n != 1:
    if n % 2 == 0:
        n = n // 2
    else:
        n = 3 * n + 1
    print(n, end=" ")
while n != 1:

The loop runs until the number n becomes 1.
if n % 2 == 0:

Checks if n is even. If true, divide n by 2 (n = n // 2).
else:

If n is odd, apply the formula 3 * n + 1.
print(n, end=" "):

Prints the value of n after each step.
end=" " ensures all numbers are printed on the same line, separated by spaces.

5. Reached the End
print("\nReached 1!")
Once the loop ends (i.e., n == 1), this message is printed.

Error Handling
try:
    number = int(input("Enter a positive integer to test the Collatz conjecture: "))
    collatz_conjecture(number)
except ValueError:
    print("Invalid input! Please enter a valid integer.")

try-except Block:
Handles errors if the user enters invalid input (e.g., letters or symbols instead of numbers).
int(input()):
Prompts the user to enter a number and converts it to an integer.

ValueError:
If the user enters non-numeric input, Python raises a ValueError.
The program catches this error and prints an error message.

0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (53) AI (34) Android (24) AngularJS (1) Assembly Language (2) aws (17) Azure (7) BI (10) book (4) Books (173) C (77) C# (12) C++ (82) Course (67) Coursera (226) Cybersecurity (24) data management (11) Data Science (128) Data Strucures (8) Deep Learning (20) Django (14) Downloads (3) edx (2) Engineering (14) Excel (13) Factorial (1) Finance (6) flask (3) flutter (1) FPL (17) Google (34) Hadoop (3) HTML&CSS (47) IBM (25) IoT (1) IS (25) Java (93) Leet Code (4) Machine Learning (59) Meta (22) MICHIGAN (5) microsoft (4) Nvidia (3) Pandas (4) PHP (20) Projects (29) Python (932) Python Coding Challenge (358) Python Quiz (23) Python Tips (2) Questions (2) R (70) React (6) Scripting (1) security (3) Selenium Webdriver (3) Software (17) SQL (42) UX Research (1) web application (8) Web development (2) web scraping (2)

Followers

Person climbing a staircase. Learn Data Science from Scratch: online program with 21 courses