我编写了以下代码。你知道吗
import math
def check_isprime(num):
flag=0
if num<2:
return False
for i in range(2,int(math.sqrt(num))+1):
if num%i == 0:
flag=1
break
if flag:
return False
else:
return True
def find_prime_factors(number):
while number != 1:
for i in range(2,number+1):
if check_isprime(i):
if number%i==0:
print i
number=number/i
break
#find_prime_factors(99999999) (Not able to execute)
#find_prime_factors(10000000) (This is fine)
对于许多大的数字,代码也可以正常工作,但是对于其他的代码,由于循环运行了更多的次数,因此失败了。 有没有可能对此进行一点优化,或者有没有更好的方法?你知道吗
有很多方法可以有效地解决这个问题,其中之一就是使用primefac package,如果您查看这个包,它包含了解决这个问题的所有有效方法:
使用这个,除非这是你的作业,你需要提交一些逻辑。:)
编辑循环方法:
这对我来说很有效。你知道吗
相关问题 更多 >
编程相关推荐