Print all Emirp Numbers in Python
Enter lower bound: 1
Enter upper bound: 99
2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, 97,
import math
def is_emirp(num: int):
"""Checks if a number is an Emirp number or not."""
return is_prime(num) and is_prime(reverse_number(num))
def is_prime(num: int):
"""Checks if a number is a Prime number or not."""
if num <= 1:
return False
if num <= 3:
return True
if num % 2 == 0 or num % 3 == 0:
return False
valid = True
for d in range(5, int(math.sqrt(num)) + 1, 2):
if num % d == 0:
valid = False
break
return valid
def reverse_number(num: int):
"""Reverses a number in a given radix."""
radix = 10
rev = 0
while num != 0:
unit = num % radix
rev = rev * radix + unit
num //= radix
return rev
def main():
l = int(input("Enter lower limit: "))
u = int(input("Enter upper limit: "))
for i in range(l, u + 1):
if is_emirp(i):
print(i, end=", ")
print()
if __name__ == "__main__":
main()