使用SageMath在Python中对非常大的整数进行除法

使用SageMath在Python中对非常大的整数进行除法,python,math,Python,Math,我正在使用Python和SageMath实现维纳指数攻击 我的代码如下 从sage.all导入* #常数 b=一些非常大的数字 n=一些非常大的数字 b_over_n=续分数(b/n) 尽管如此: t_over_a=b_over_n.收敛(i+1) t=t除以a.分子() a=t除以a.分母() #检查t是否除以ab-1 如果((t!=0)和(gcd(a*b-1,t)==t)): 打印(“发现i:,i”) 打破 i+=1 我发现循环不会永远结束,并在while循环之前添加了这行代码 print

我正在使用Python和SageMath实现维纳指数攻击

我的代码如下

从sage.all导入*
#常数
b=一些非常大的数字
n=一些非常大的数字
b_over_n=续分数(b/n)
尽管如此:
t_over_a=b_over_n.收敛(i+1)
t=t除以a.分子()
a=t除以a.分母()
#检查t是否除以ab-1
如果((t!=0)和(gcd(a*b-1,t)==t)):
打印(“发现i:,i”)
打破
i+=1
我发现循环不会永远结束,并在while循环之前添加了这行代码

print(b_over_n.convergent(5))
我发现无论怎样,
b_over_n
总是返回0。 我还打印了
类型(b\u over\u n)
,并检查它是否为
长型

我已经查阅了SageMath手册,但还没有发现任何有用的东西


这里有什么地方我做错了吗?

原来我使用的是Python2,其中
int/int
将返回
int
。 因此,在我的例子中,由于
b
小于
n
b/n
自动返回
0