我编写了以下代码用于求任意给定数字的最大质因数。对于小于9位数的数字,它能正常工作,但是当数字超过九位数时,它表现得不确定。如何进行优化?
此函数用于判断一个数字是否为质数。
def is_prime(x):
u = 1
i = 2
while i < x:
if x%i == 0:
u = 0
break
else:
i = i+1
return u
该函数确定一个数字是否是另一个数字的质因数
def detprime(x,y):
if x%y == 0:
if (is_prime(y)):
return 1
else:
return 0
else:
return 0
这个部分检查给定数字的所有质因子,将它们存储在一个列表中,并返回最大值
def functionFinal(x):
import math
factors = []
y = x//2
for i in range(1,y):
if detprime(x,i) == 1:
factors.append(i)
y = len(factors)
print(factors[y-1])
import time
start_time = time.process_time()
print("Enter a number")
num = int(input())
functionFinal(num)
print(time.process_time()-start_time)
x
的平方根。 - Klaus D.