Number based brainteasers

In this collection of challenges you are going to manipulate numbers and perform basic arithmetic operations with numbers as well as use string manipulation techniques to format numbers.

Challenge #1: Square Number


ChallengeSolutionLearning Outcome?
Write a program that prompts the user to enter a number and returns (displays on screen) the square of this number (e.g. by multiplying this number by itself or by raising this number to the power of 2).

number = int(input("Type a number:"))
squareNumber = number * number
print("The Square Number is " + str(squareNumber)) 
Notice the need to be able to convert a user input from a string to an integer using the int() function on line 1.

Converting a user input to an integer is required to do some maths based calculations such as the calculation used on line 2.

Vice versa, we can convert an integer to a string using the str() function on line 3.

Challenge #2: Total 100


ChallengeSolutionLearning Outcome?
Write a program that prompts the user to enter a number between 0 and 100. The program should return the number that needs to be added to reach 100. For instance if the user enters 36, the program should return 64 because 36 + 64 = 100.

number = int(input("Type a number:"))
total100 = 100 - number
print("The Total 100 Number is " + str(total100)) 
Once again notice the use of the int() function on line 1 to convert a user input to an integer and the str() function on line 3 to convert an integer to a string.

Challenge #3: Odd or Even?


ChallengeSolutionLearning Outcome?
Write a program that prompts the user to enter a number and returns whether this number is an odd number or an even number. (tip: A number is even if the remainder of dividing this number by two is null). So, in Python if number % 2 = 0 then this number is even otherwise it is odd.

number = int(input("Type a number:"))
if (number % 2) == 0:
  print("This number is even.")
else:
  print("This number is odd.") 
In Python the % operator is used to calculate the remainder of a division. This is very useful here to find out if a number can be divided by 2 (even number) or not (odd number).

Challenge #4: Telephone Number


ChallengeSolutionLearning Outcome?
Ask the user to enter their telephone number using 11 digits. Format this number as follows (xxxx) xxx xxx. For instance if the user types 01473123456, the program output should be (01473) 123 456

number = input("Type your telephone number usin 11 digits:")
telephoneNumber = "("  + number[0:5] + ") " + number[5:8] + " " + number[8:11]
print(telephoneNumber)
In Python it is easy to slice a string to extract certain characters. This is done by using the following approach: using the square brackets on a string: e.g. string[startingPosition:endPosition] will retrieve all the characters of the string between the startingPostion and the endPosition.

Notice that in this challenge we are treating the user input as a string not a number. (We did not convert the user input on line 1 to an integer as we did in previous challenges using the int() function.) Each digit of our number/string is in fact a character from the string.

Challenge #5: Palindrome


ChallengeSolutionLearning Outcome?
Ask the user to enter any large number (e.g. at least 3 digits long). The program should return the palindrome of this number. For instance if the user enters 123 the program should return 123321.

number = input("Type a large number:")
palindrome = ""

for digit in number:
  palindrome = digit + palindrome

palindrome = number + palindrome  
print("The palindrome number is " + palindrome)  
In Python it is easy to iterate (loop through) through each character of a string one at a time using a for loop.

Notice that in this challenge, once again we are treating the user input as a string not a number. (We did not convert the user input on line 1 to an integer as we did in previous challenge using the int() function.) Each digit of our number/string is in fact a character from the string.

Challenge #6: Number Upgrade


ChallengeSolutionLearning Outcome?
Ask the user to enter any large number (e.g. at least 3 digits long). The program should return a number where each digit is being incremented by 1 except if the digit is equal to 9 then it becomes 0. For instance if the user enters 2489740 the program should return 3590851.
number = input("Type a large number:")
numberUpgrade = ""

for digit in number:
  if int(digit)==9:
    newDigit = 0
  else:
    newDigit = int(digit) + 1
  numberUpgrade = numberUpgrade + str(newDigit)
  
print("The Number Upgrade is " + numberUpgrade) 
This is the same approach as for challenge number #5 where we iterate (loop through) each character of a string one at a time using a for loop.

We retrieve each digit (character) one at a time and have to convert these digits to integers using the int() on line 5 and 8 to be able to perform maths calculation with them (adding them up).

Challenge #7: Spaced Out Number


ChallengeSolutionLearning Outcome?
Ask the user to enter any large number (e.g. at least 3 digits long). The program should return this same number adding a “-“ between each digit. For instance if the user enters 3658 the program should return 3-6-5-8.

number = input("Type a large number:")
spacedOutNumber=""

for digit in number:
  spacedOutNumber = spacedOutNumber + "-" + str(digit)
  
print("The Spaced Out Number is " + spacedOutNumber[1:])  
Once again we are iterating (looping through) each character of a string one at a time using a for loop.

Notice the slicing approach used to truncate the string from its first digit on line 7 using the string[1:] which returns all the characters from a string from position 1. (So slicing out the first character which is at position 0).

Challenge #8: Total Number


ChallengeSolutionLearning Outcome?
Ask the user to enter any large number (e.g. at least 3 digits long). The program should return the result of adding each digit together. For instance if the user enters 7324 the program should return 7+3+2+4 = 16.

number = input("Type a large number:")
totalNumber = 0

for digit in number:
  totalNumber += int(digit)
  
print("The Total Number is " + str(totalNumber))  
Nothing new here… Once again we are iterating (looping through) each character of a string one at a time using a for loop.

Challenge #9: Plus Minus


ChallengeSolutionLearning Outcome?
Ask the user to enter any large number (e.g. at least 3 digits long). The program should return the result of alternatively adding and subtracting each digit together. For instance if the user enters 7324512 the program should return 7-3+2-4+5-1+2 = 8.

number = input("Type a large number:")
plusMinusNumber = 0
plusminus = 1

for digit in number:
  plusMinusNumber += int(digit) * plusminus
  plusminus = plusminus * (-1)
  
print("The Plus Minus is " + str(plusMinusNumber)) 
Nothing new here… Once again we are iterating (looping through) each character of a string one at a time using a for loop.

Challenge #10: Digit Grouping


ChallengeSolutionLearning Outcome?
When displaying numbers it is good practice to group digits together and use the comma to separate groups of three digits. For instance 100000000 is easier to read when it is displayed as 100,000,000.
Ask the user to enter any large number (e.g. at least 3 digits long). The program should display the result of formatting this number using the comma. For instance if the user enters 65738924 the program should return 65,738,924.

number = input("Type a large number:")
digitGroupingNumber = ""
counter=0

for digit in number[::-1]:
  if counter==3:
     digitGroupingNumber = digit + "," + digitGroupingNumber
     counter=0
  else:   
     digitGroupingNumber = digit + digitGroupingNumber
     counter+=1
  
print("The Digit Grouping Number is " + digitGroupingNumber)
You will notice on this code that we are iterating through each character of a string starting from the last character and going backwards up to the first character. To do so we used a negative step in our for loop using the [::-1] notation on line 5.

Did you like this challenge?

Click on a star to rate it!

Average rating 4.8 / 5. Vote count: 9

No votes so far! Be the first to rate this post.

As you found this challenge interesting...

Follow us on social media!