设计一个算法,利用栈实现质因数分解,要求输出格式形如:300=55322
1条回答 默认 最新
关注
望采纳,谢谢
import math class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push(self, item): self.items.append(item) def pop(self): return self.items.pop() def peek(self): return self.items[len(self.items)-1] def size(self): return len(self.items) def is_prime(x): if x == 2: return True for i in range(2, int(math.sqrt(x)) + 1): if x % i == 0: return False return True s1 = Stack() num = int(input()) while not is_prime(num): for i in range(2, int(math.sqrt(num)) + 1): if (num % i == 0 and is_prime(i)): s1.push(i) num //= i break s1.push(num) while not s1.isEmpty(): print(s1.pop(),end='')
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录