将一个整数分解质因数。例如:90,根据90=2×3×3×5输出一个质因数组成的数列[2,3,3,5] ''' import math z = 127
时间: 2024-03-06 12:49:46 浏览: 6
以下是实现代码:
```python
import math
z = 90 # 待分解的整数
factors = []
while z % 2 == 0:
factors.append(2)
z //= 2
for i in range(3, int(math.sqrt(z))+1, 2):
while z % i == 0:
factors.append(i)
z //= i
if z > 2:
factors.append(z)
print(factors)
```
解释:首先,定义变量z为90,表示待分解的整数。然后,定义一个空列表factors,用于存储分解得到的质因数。接下来,使用while循环将z中的2因子全部除掉,并将2加入到factors列表中。然后,使用for循环遍历3到$\sqrt{z}$之间的所有奇数,判断当前数是否为z的因子。如果是,则将其加入factors列表中,并将z除以该数。最后,如果z大于2,则说明z是一个大于$\sqrt{z}$的质因子,将其加入factors列表中。最终得到的factors列表即为所求的质因数分解的结果。
相关问题
编程将一个正整数分解成质因数例如: 输入 90 输出 90=2*3*3*5
编程将一个正整数分解成质因数的过程可以通过循环和判断来实现。以下是一个示例代码:
```python
def prime_factors(n):
factors = []
i = 2
while i <= n:
if n % i == 0:
factors.append(i)
n = n / i
else:
i += 1
return factors
def format_factors(n, factors):
result = str(n) + " = "
for i in range(len(factors)):
result += str(factors[i])
if i != len(factors) - 1:
result += " * "
return result
def decompose_integer(n):
factors = prime_factors(n)
result = format_factors(n, factors)
return result
number = int(input("请输入一个正整数:"))
result = decompose_integer(number)
print(result)
```
运行以上代码,输入一个正整数,程序将会输出该正整数的质因数分解结果。
将一个正整数分解质因数。例如:输入90,打印出90=2 * 3 * 3 * 5
好的,以下是将一个正整数分解质因数的代码:
```python
def prime_factors(n):
i = 2
factors = []
while i * i <= n:
if n % i:
i += 1
else:
n //= i
factors.append(i)
if n > 1:
factors.append(n)
return factors
n = int(input("请输入一个正整数:"))
factors = prime_factors(n)
print(f"{n}=", end="")
for i in range(len(factors)):
if i == len(factors) - 1:
print(factors[i])
else:
print(factors[i], "*", end="")
```
输入90后,输出结果为:
```
90=2*3*3*5
```
希望这个答案能够帮到你!