我试图找到数字x的最大素数因子,Python给出了范围太大的错误.我尝试过使用x range但是我得到一个OverflowError:Python int太大而无法转换为C long
x = 600851475143
maxPrime = 0
for i in range(x):
isItPrime = True
if (x%i == 0):
for prime in range(2,i-1):
if (i%prime == 0):
isItPrime = False
if (isItPrime == True):
if (i > maxPrime):
maxPrime = i;
print maxPrime
Run Code Online (Sandbox Code Playgroud) xrange 函数不适用于大整数:
>>> N = 10**100
>>> xrange(N)
Traceback (most recent call last):
...
OverflowError: long int too large to convert to int
>>> xrange(N, N+10)
Traceback (most recent call last):
...
OverflowError: long int too large to convert to int
Run Code Online (Sandbox Code Playgroud)
Python 3.x:
>>> N = 10**100
>>> r = range(N)
>>> r = range(N, N+10)
>>> len(r)
10
Run Code Online (Sandbox Code Playgroud)
range()Python 2.x 有py3k内置函数的后端吗?
我正在寻找一个完整的"懒惰"实现range(),而不只是部分实现它的一些功能.
range()并xrange()为10位数字工作.但13位数字怎么样?我在论坛里找不到任何东西.