Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def is_prime(n):
- if n == 2 or n == 3: return True
- if n < 2 or n % 2 == 0: return False
- if n < 9: return True
- if n % 3 == 0: return False
- r = int(n**0.5)
- f = 5
- while f <= r:
- if n % f == 0: return False
- if n % (f+2) == 0: return False
- f += 6
- return True
- def digitsum(num):
- num, total = str(num), 0
- for digit in num:
- total += int(digit)
- return total
- def newdigits(num):
- newNums = []
- num = str(num)
- for digit in range(10):
- newNums.append(int(num + str(digit)))
- return newNums
- harshadCurrent = [1, 2, 3, 4, 5, 6, 7, 8, 9]
- harshadRepo = []
- checked = []
- for digitsAdded in range(12):
- harshadRepo = []
- for harshad in harshadCurrent:
- for entry in newdigits(harshad):
- if entry % digitsum(entry) == 0:
- harshadRepo.append(entry)
- if is_prime(entry/digitsum(entry)):
- for entry2 in newdigits(entry):
- if is_prime(entry2):
- checked.append(entry2)
- harshadCurrent = harshadRepo
- print(checked)
- print(sum(checked))
Add Comment
Please, Sign In to add comment