def naive_simplified(self): digits_num = int_to_list(self.num) digits_den = int_to_list(self.den) joint_factors = joint_frequency_dict(digits_num, digits_den) if not joint_factors: return Fraction(self.num, self.den) else: digits_num_final = [i for i in digits_num] digits_den_final = [i for i in digits_den] for k, v in joint_factors.iteritems(): for i in range(v): digits_num_final.remove(k) digits_den_final.remove(k) num = list_to_int(digits_num_final) den = list_to_int(digits_den_final) if den == 0: # Ignore divide by zero problems return Fraction(0, 1) return Fraction(num, den).simplified()
def sum_facs_eq_num(num): return num == sum((FACTORIAL_DICT[i] for i in int_to_list(num)))
def is_circular(n): l = int_to_list(n) return all(is_prime(list_to_int(r)) for r in rotations(l))