# 输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。 # 保证输入的整数最后一位不是 0 。 # 数据范围:1≤n≤10^8 # 输入描述: # 输入一个int型整数 # 输出描述: # 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数def func(num):while num % 10 == 0: # 若整数最后一位是0num = int(num / 10)num_str_list = list(str(num))[::-1]if len(num_str_list) < 2:return int(num_str_list[0])new_list = [num_str_list[0]]for i in range(1, len(num_str_list)):if num_str_list[i] in new_list:continuenew_list.append(num_str_list[i])new_num = int("".join(new_list))return new_num# 功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 ) # 数据范围:1≤n≤2×10^9+14 # 输入描述: # 输入一个整数 # 输出描述: # 按照从小到大的顺序输出它的所有质数的因子,以空格隔开。 import mathdef prime_factor(num):prime_num = list(range(2, int(math.sqrt(num))+1))prime_list = []num1 = numi = 0while i < len(prime_num):if num1 % prime_num[i] == 0:prime_list.append(prime_num[i])num1 = int(num1 / prime_num[i])i = 0else:i += 1if len(prime_list) > 0:return prime_listelse:return numif __name__ == '__main__':num = 9876673print(func(num))num2 = 181print(prime_factor(num2))