python求10的因数_Python科学计算系列10-数论

1.常用操作

代码如下:

# coding=utf-8

from sympy import *

from sympy.ntheory.modular import solve_congruence, crt

# 阶乘

# 例:求5的阶乘

print(factorial(5))

# 分解质因数

# 例:将300分解质因数

print(factorint(300, visual=True))

# 欧拉函数

# 例:求Ψ(25)的值

print(totient(25))

# 判断是否质数

# 例:求2^17-1是否为质数

print(isprime(2 ** 17 - 1))

# 莫比乌斯函数

print(mobius(13 * 17 * 5))

# 求因子

print(divisors(36))

# 解同余方程

# 例:今有一数,除3余2,除5余3,除7余2,问该数几何?

# 第一个数为余数,第二个数为模数

# 方法1

print(solve_congruence((2, 3), (3, 5), (2, 7)))

# 方法2

# 前三个数为模数,后三个为余数

print(crt([3, 5, 7], [2, 3, 2]))

# 求离散对数(7^3mod15=41)

print(discrete_log(41, 15, 7))

运行结果:

2.求可以尺规作图的正n边形(n<100)

代码如下:

a = []

for i in range(1, 101):

if isprime(2 ** i - 1):

a.append(i)

print(a)

运行结果:

[2, 3, 5, 7, 13, 17, 19, 31, 61, 89]

3.函数简介

欧拉函数φ(n)

定义:φ(n)表示不超过n且与n互素的正整数的个数

计算公式

例:φ(25)=25(1-1/5)=20

莫比乌斯函数μ(n)

定义如下:

例:μ(5*11*13)=(-1)^3=-1

你可能感兴趣的:(python求10的因数)