在打印过程中,我对这个python37代码有一个问题,我希望它不要打印出因式分解输出中的素数。但是,我希望它只打印复合而不是超出循环的第三个打印语句。该程序对于大型复合材料的因式分解非常快,但对于大型素数则非常慢
例如,3种打印方式如下:
这三个因素是: 1. 三,
如果我输入2047,它的打印方式如下:
2047年的因素包括: 1. 23, 89, 2047年
但是,我只希望它显示到89。以下是代码:
import math
while True:
def print_factors(x):
print("The factors of",x,"are:")
for i in range(1,x+1):
if x % i == 0:
print(i)
p = int(input('Enter a prime number and if the output is 1 and itself its prime: '))
k = ((p**2*2))
l = (((pow(2, k + 1, 2 * k) - 1) % (2 * k)))
f = (k//2//p)
print_factors(f)
在python io论坛上,我在Gribouillis的帮助下解决了这个问题,但是Prime仍然打印,但是截止值低于第4个输出。您可以生成因子并切片迭代器
相关问题 更多 >
编程相关推荐