大数字的脚本需要几天时间

时间:2017-06-19 16:35:38

标签: python python-2.7 bignum

我正在尝试运行此脚本,它已经运行了2天。仍然没有得到答案。我试了很久而不是int。 我应该做些什么? 使用像这样的大数字更好的方法是什么?

count=int(0)
sum1=int(1)
x=int(343543363925512)
y=int(98325112)
while x!=1:
    sum1=sum1+x
    if x%2!=0:
        x=x*3+1
    else:
         x=x/4

while y!=1:

    if y%2!=0:
        y=y*3+1
    else:
         y=y/4
    count=count+1

answer=int(sum1*count)
print answer
非常感谢你。

1 个答案:

答案 0 :(得分:3)

据我所知,问题是着名的3n + 1问题,可能是: 当数字x%2 == 0时,你应该除2,而不是4。

count=int(0)
sum1=int(1)
x=int(343543363925512)
y=int(98325112)
while x!=1:
    sum1=sum1+x
    if x%2!=0:
        x=x*3+1
    else:
         x=x/2

while y!=1:

    if y%2!=0:
        y=y*3+1
    else:
         y=y/2
    count=count+1

answer=int(sum1*count)
print answer

你的代码运行两天的原因是你的函数进入无限循环。

因为你只在x或y等于1时退出循环,当x = 2,x%2 == 0时,你会做x / 4得到0,x = 0然后永远运行。

根据您的代码,您可以执行

while x > 1:
    //do your things here

对于y,它被修改,相同。