Files
  • main.py
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
def squarify(n):
  # sum of squared digits
  result = 0
  # loop through string version of number
  for digit in str(n):
    # add the square of the digit to the sum
    result += int(digit)**2
  # return the total
  return result

def isHappy(number):
  numbers = [number]
  happy = True
  while number != 1:
    # replace number with sum of squares of digits
    number = squarify(number)
    # are the numbers repeating?
    if number in numbers:
      # it's not happy...
      happy = False
      # ... so we'll stop
      number = 1
    else:
      # store number to check for repeats
      numbers.append(number)
  # return whether the number is happy
  return happy

# list of happy numbers
happy = []
# number we're checking
n = 1
# number of happy numbers found
count = 0
# repeat until we've found eight happy numbers
while count < 8:
  if isHappy(n):
    # increase the count
    count +=1
    # add the number to the list
    happy.append(n)
  # move on to the next number
  n += 1
print("The first eight happy numbers are:")
print(happy)