# Python program to print the octal value of the numbers from 1 to N

• Last Updated : 15 Mar, 2023

Given a number N, the task is to write a Python program to print the octal value of the numbers from 1 to N.

Examples:

```Input: 3
Output: 1
2
3

Input: 11
Output: 1
2
3
4
5
6
7
10
11
12
13```

Approach:

• We will take the value of N as input.
• Then, we will run the for loop from 1 to N+1 and traverse each “i” through oct() function.
• Print each octal value.

Note: The oct() function is one of the built-in methods in Python3. The oct() method takes an integer and returns its octal representation in a string format.

Below are the implementations based on the above approach:

## Python3

 `# Python program to print the octal value of the``# numbers from 1 to N` `# Function to find the octal value of the numbers``# in the range 1 to N``def` `octal_in_range(n):` `    ``# For loop traversing from 1 to N (Both Inclusive)``    ``for` `i ``in` `range``(``1``, n``+``1``):` `        ``# Printing octal value of i``        ``print``(``oct``(i)[``2``:])`  `# Calling the function with input 3``print``(``"Input: 3"``)``octal_in_range(``3``)` `# Calling the function with input 11``print``(``"Input: 11"``)``octal_in_range(``11``)`

Output

```Input: 3
1
2
3
Input: 11
1
2
3
4
5
6
7
10
11
12
13```

Time complexity: O(n), where n is the input argument to the function. The time complexity is linear as the for loop traverses the range from 1 to N.

Space complexity: O(1), as the function only uses a constant amount of extra space to store the temporary variables i and the octal representation of i.

### Approach: Decimal to Octal Conversion using repeated division by 8

1. Define a function named decimal_to_octal that takes a decimal number as an argument and converts it to its octal representation using repeated division by 8 and concatenating the remainders.
2. In the decimal_to_octal function, initialize a variable octal_num to 0 and a variable i to 1.
3. Using a while loop, repeatedly divide the decimal number by 8 and compute the remainder.
4. Divide the decimal number by 8 using the floor division operator // and update the value of the decimal number.
5. Multiply the remainder by i and add it to the octal_num.
6. Multiply i by 10 to shift the position of the next digit to be added to the left.
7. After the loop finishes, return the octal_num as the octal representation of the original decimal number.
8. In the main program, take user input for a number n.
9. Use a for loop to iterate over the numbers from 1 to n inclusive.
10. For each number i in the loop, call the decimal_to_octal function on i and print the resulting octal value.
11. The final output will be the octal representation of all the numbers from 1 to n.

## Python3

 `# Function to convert decimal to octal``def` `decimal_to_octal(n):``    ``octal_num ``=` `0``    ``i ``=` `1``    ``while` `(n !``=` `0``):``        ``rem ``=` `n ``%` `8``        ``n ``/``/``=` `8``        ``octal_num ``+``=` `rem ``*` `i``        ``i ``*``=` `10``    ``return` `octal_num` `# Main program``n ``=` `11``for` `i ``in` `range``(``1``, n``+``1``):``    ``print``(decimal_to_octal(i))`

Output

```1
2
3
4
5
6
7
10
11
12
13```

The time complexity of this program is O(n log n), where n is the input number, The auxiliary space used by this program is O(1).

My Personal Notes arrow_drop_up