AcWing 867. 分解质因数python3
原题链接
简单
作者:
xanxus1111
,
2020-06-01 11:04:30
,
所有人可见
,
阅读 615
# 从小到大枚举所有数
# n中最多只包含一个大于根号n的质因子
def divide(n):
i = 2 #遍历从二开始的因子
while i <= n / i: # 判断条件 i 小于等于 根号n
if n % i == 0: # 如果n可以被 i整除
s = 0 # 统计 i 的个数
while n % i == 0: #计算可以被i整除几次
n /= i # n 等于被 i 整除后的数
s += 1 # 没被i整除后 s 加一
print(int(i), s) # 不能被i整除后,输出i 和 i 的个数
i += 1 # i 加一 继续检查n能否被下一个i 整除
if n > 1: print(int(n), 1) #当有一个小于根号n的数乘以一个大于 根号n的质数 例如 46 = 2 * 23 那么只可能有一个大于等于 根号n 的质数
print('')
if __name__ == '__main__':
n = int(input())
for i in range(n):
x = int(input())
divide(x)