summer14

sagemath初等数论

SageMath是一个覆盖许多数学功能的应用软件,包括代数、组合数学、图论、计算数学、数论、微积分和统计。

 

安装sagemath(ubuntu)

sudo apt install sagemath

在命令行输入sage启动sagemath

输入tutorialmanual()打开离线文档

  

 

素因数分解

sage: factor(30)
2 * 3 * 5

 

素数测试

sage: is_prime(5)
True
sage: next_prime(2005)
2011
sage: previous_prime(2005)
2003

 

模幂运算

计算512006 (mod 97)

sage: R = IntegerModRing(97)    ##模数
sage: a = R(51)
sage: a^2006

或者
sage: power_mod(51, 2006, 97)

 

乘法逆元
如果a×b ≡ 1 (mod n),则称b是模n下a的乘法逆元,可以写作a-1

例:计算3在模2005下的乘法逆元3-1

sage: inverse_mod(3,2005)
1337

 

欧几里得算法

求两个整数的最大公约数

sage: gcd(515,2005)
5

 

扩展欧几里得算法

as+bt=gcd(a,b),求其中的gcd(a,b),s,t

sage: g,s,t = xgcd(12,15)
sage: print(g,s,t)
3 -1 1

 

欧拉函数

φ(n)表示1到n-1中与n互素的整数个数

sage: euler_phi(2005)
1600

 

中国剩余定理

当模数两两互素时,一元同余方程组有解

  

其中:

  r=a1a2a3 ... an

  ri=r/ai

sage: crt(2,1,3,5)      ##crt(a,b,m,n),寻找 x 满足 x ≡ a (mod m) 且 x ≡ b (mod n)
11

计算三个及三个以上方程组
sage: crt([2,3,2],[3,5,7])  ##求解物不知数问题
23

 

posted on 2023-04-18 13:09  summer14  阅读(382)  评论(0编辑  收藏  举报

导航