Python输出素因子分解
时间: 2024-02-02 21:09:24 浏览: 29
以下是一个用Python输出素因子分解的例子:
```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
num = int(input("请输入一个正整数:"))
factors = prime_factors(num)
print(f"{num}的素因子分解结果为:{factors}")
```
这个例子中,我们定义了一个函数`prime_factors`来进行素因子分解。函数中使用了一个`while`循环来寻找素因子,首先从2开始,如果能整除n,则将i添加到factors列表中,并将n更新为n除以i的商。如果不能整除,则将i加1。当循环结束后,如果n大于1,则说明n本身就是一个素因子,将其添加到factors列表中。最后,我们将输入的数和其素因子分解结果打印出来。
相关问题
python素因子分解
以下是 Python 实现的素因子分解代码:
```python
def prime_factors(n):
factors = []
d = 2
while n > 1:
while n % d == 0:
factors.append(d)
n //= d
d += 1
if d * d > n:
if n > 1:
factors.append(n)
break
return factors
n = int(input("请输入一个正整数:"))
print(f"{n} 的素因子分解结果为:{prime_factors(n)}")
```
运行程序后,输入一个正整数,程序就会输出该数的素因子分解结果。例如,输入 `24` ,程序会输出 `24 的素因子分解结果为:[2, 2, 2, 3]`,即 `24 = 2 * 2 * 2 * 3`。
费马因子分解python
费马因子分解是一种用于分解大质数的算法,其基本思想是通过费马小定理和二次探测法来寻找质因数。
以下是一个用Python实现费马因子分解的示例代码:
```python
import math
def fermat_factorization(n):
a = math.ceil(math.sqrt(n))
b2 = a * a - n
while not math.sqrt(b2).is_integer():
a += 1
b2 = a * a - n
p = a + math.sqrt(b2)
q = a - math.sqrt(b2)
return int(p), int(q)
n = 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
p, q = fermat_factorization(n)
print("p = ", p)
print("q = ", q)
```
在这个示例中,输入的大质数为n,程序通过费马因子分解的方法寻找其质因数p和q,并输出结果。