测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A36281. 因数分解问题描述每个正整数都可以分解成素数的乘积,例如:6=2x3 现在,给定一个正整数N,请按要求输出它的因数分解式。输入描述输入第一行,包含一个正整数 。约定 2<=N <10^12输出描述输出一行,为N的因数分解式。要求按质因数由小到大排列,乘号用星号*表示,且左右各空一格。当且仅当一个素数出现多次时,将它们合并为指数形式,用上箭头^表示,且左右不空格。样例输入16样例输出12 * 3样例…

填空题 困难

题目描述

因数分解

问题描述

每个正整数都可以分解成素数的乘积,例如:6=2x3 

现在,给定一个正整数N,请按要求输出它的因数分解式。

输入描述

输入第一行,包含一个正整数 。约定 2<=N <10^12

输出描述

输出一行,为N的因数分解式。要求按质因数由小到大排列,乘号用星号*表示,且左右各空一格。当且仅当一个素数出现多次时,将它们合并为指数形式,用上箭头^表示,且左右不空格。

样例输入1

6

样例输出1

2 * 3

样例输入2

20

样例输出2

2^2 * 5

参考答案

input_number = int(input()) original_number = input_number factors = [] def isPrime(num): for j in range(2, int(num * * 0.5)): if num % j == 0: return False return True if isPrime(input_number): factors.append([input_number, 1]) else : for i in range(2, input_number + 1): input_number = int(input_number) if input_number % i == 0: factors.append([i, 0]) while input_number % i == 0: factors[-1][1] += 1 input_number //= i if isPrime(input_number): if input_number != 1: factors.append([input_number, 1]) break for i in range(len(factors)): if i != 0: print(" * ", end = "") if factors[i][1] == 1: print(factors[i][0], end = "") else : print(f "{factors[i][0]}^{factors[i][1]}", end = "") print("")
上一题 下一题