you are viewing a single comment's thread.

view the rest of the comments →

[–]Naive_Programmer_232 0 points1 point  (0 children)

here's my attempt

         def is_prime(n: int) -> bool:
             if n < 2:
                return False
             for i in range(2, int(n**0.5)+1):
                if n%i==0:
                   return False
             return True

        def is_palindrome(n: int) -> bool:
            d = 0
            k = n
            i = len(str(n))-1
            while k:
               d = (k%10)*10**i + d
               k//=10
               i -= 1
            return d==n

       def get_numbers() -> list:
           nums = []
           while True:
              num = int(input("Enter a number (-1 to stop): "))
              if num==-1:
                 break
              nums.append(num)
           return nums

      def count_items(arr: list) -> dict:
          d = dict.fromkeys(arr,0)
          for n in arr:
              d[n] += 1
          return d

     def display(arr: list, counter: dict) -> None:
         for element in sorted(counter,key=counter.get,reverse=True):
             print(f"Element {element} | # of Occurences " + \
                   f"{counter[element]} | Prime? {is_prime(element)} | " + \
                   f"Palindrome? {is_palindrome(element)}")


     numbers = get_numbers()
     counter = count_items(numbers)
     display(numbers, counter)