Python: Check whether a number is "happy" or not
Python Basic - 1: Exercise-66 with Solution
From Wikipedia, the free encyclopaedia:
A happy number is defined by the following process:
Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers, while those that do not end in 1 are unhappy numbers.
Write a Python program to check whether a number is "happy" or not.
Sample Solution:
Python Code:
# Function to check if a number is a Happy Number
def is_Happy_num(n):
past = set() # Set to store previously encountered numbers during the process
while n != 1: # Continue the process until the number becomes 1 (a Happy Number) or a cycle is detected
n = sum(int(i) ** 2 for i in str(n)) # Calculate the sum of squares of each digit in the number
if n in past: # If the current number has been encountered before, it forms a cycle
return False # The number is not a Happy Number
past.add(n) # Add the current number to the set of past numbers
return True # If the process reaches 1, the number is a Happy Number
# Test cases
print(is_Happy_num(7))
print(is_Happy_num(932))
print(is_Happy_num(6))
Sample Output:
True True False
Explanation:
Here is a breakdown of the above Python code:
- Define a function named "is_Happy_num()" that takes a number 'n' as input.
- Initialize a set called 'past' to keep track of previously encountered numbers during the process.
- Use a while loop to continue the process until the number becomes 1 (a Happy Number) or a cycle is detected.
- Inside the loop, calculate the sum of the squares of each digit in the current number.
- Check if the current number has been encountered before. If yes, it forms a cycle, and the number is not a Happy Number.
- Add the current number to the set of past numbers.
- Return 'True' if the process reaches 1, indicating that the number is a Happy Number.
- Test the function with different inputs to check its functionality.
Visual Presentation:
Flowchart:
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Python program to find the longest word in set of words which is a subsequence of a given string.
Next: Write a Python program to find and print the first 10 happy numbers.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://198.211.115.131/python-exercises/basic/python-basic-1-exercise-66.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics