Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

python
community creator

How to generate the Collatz sequence in Python

Aarthi Reddy

The Collatz sequence is generated based on the following conditions:

  • If the number is even, the function returns a value of n//2.
  • If the number is odd, the function returns the value of 3*number+1.

We then continue this process until the function returns the value of 1.

Algorithm

Step-1:

Check wether or not the number is equal to one.

Step-2:

Check if a number is even or odd. If the number is even, print number//2; if the number is odd, print 3 * number+1.

For example:

Let the number be 11:

11 is odd, return 3*11+1=34

34 is even, return 34//2 = 17

17 is odd, return 17*3+1=52

52 is even, return 52//2=26

26 is even, return 26//2=13

13 is odd, return 13*3+1=40

40 is even,return 40//2=20

20 is even, return 20//2=10

10 is even, return 10//2=5

5 is odd, return 5*3+1=16

16 is even, return 16//2=8

8 is even, return 8//2=4

4 is even, return 4//2=2

2 is even,return 2//2=1

Code

def collatz(number):
  lst=[]
  lst.append(number)
  while(number!=1):
      if(number%2==0):
          number=number//2
          lst.append(number)
      else:
          number=number*3+1
          lst.append(number)
  print(lst)
collatz(11)
             
  1. An empty list is taken to store all sequence values.

  2. While loop is taken to check if the condition is equal to one.

  3. If the number is not equal to one, the number is checked to see if it is even or odd. Based on this result, the subsequent operation is performed.

  4. All the values are appended to the list.

  5. The list is the Collatz sequence of the given number.

RELATED TAGS

python
community creator
RELATED COURSES

View all Courses

Keep Exploring