数学联邦政治世界观
超小超大

奇妙的数学猜想 (4-3)

seed_a = random.randint(2, n-1)

seed_b = random.randint(2, n-1)

a = seed_a

b = seed_b

for case in range(1, 5):

if case == 1:

# 情况一:a = f(f(a)), b = f(b)

a = f(f(a, n), n)

b = f(b, n)

p = gcd(abs(a - b), n)

elif case == 2:

# 情况二:a = f(a), b = f(f(b))

a = f(a, n)

b = f(f(b, n), n)

p = gcd(abs(a - b), n)

elif case == 3:

# 情况三:a = f(a), b = f(b)

a = f(a, n)

b = f(b, n)

sum_ab = a + b

sum_ab = sum_ab - n if sum_ab > n else sum_ab

p = gcd(sum_ab, n)

elif case == 4:

# 情况四:a = random, b = random

a = random.randint(

2, n-1)

b = random.randint(2, n-1)

sum_ab = a + b

sum_ab = sum_ab - n if sum_ab > n else sum_ab

p = gcd(sum_ab, n)

if 1<p<n:

q = n // p

if FJP(p) and FJP(q):

return p, q

return None

# 示例用法

n = 2021 # 替换为任意大整数

result = FactorizeRSA(n)

if result:

print(f"{n} 可以分解为两个质数: {result[0]} 和 {result[1]}")

else:

print(f"{n} 不能分解为两个质数")

代码解析

1. 初始素数检查:首先检查 n 是否为素数,如果是则直接返回。

2. Fermat 分解法:

• 初始化 a 为 √n 的上界。

• 计算 b²=α² – n ,并检查 b² 是否为完全平方数。

• 如果 b² 是完全平方数,则 n 被分解为 (α+b) 和 (α – b) 。

1. 验证因子:检查 p 和 q 是否为素数,并确保 p × q=n 。

2. 交替更新 a 和 b :如果 p 和 q 任意一个都小于

n

4

或者大于

3n

4

,则继续使用 Fermat 分解法,否则切换到 优化的 Pollard-Rho 算法。

3. 优化的 Pollard-Rho 算法:利用 Pollard-Rho 算法寻找 n 的因子,并验证找到的因子是否为素数。

总结

数学联邦政治世界观提示您:看后求收藏(同人小说网http://tongren.me),接着再看更方便。

相关小说

滚开!别挡我装逼! 连载中
滚开!别挡我装逼!
木汐云
倒霉高中生?穿越?废柴?傻比的系统和破碎的她……辛辛苦苦,到头来一场空……是人性的泯灭,还是道德的沦丧……不!是星辉斑斓在向她招手!这一刻,......
1.3万字1个月前
凹凸:未来世界与孩子们的穿越 连载中
凹凸:未来世界与孩子们的穿越
欧阳煦洛
介绍了凹凸未来的情况与弟弟组和安迷修,格瑞,安莉洁,帕洛斯的身份被慢慢的解开
6.6万字4周前
穿书成恶毒女配怎么办 连载中
穿书成恶毒女配怎么办
美颜盛世
【已经签约】穿进修仙文里的恶毒女配变成了万人迷。不过女主(他是男的)是怎么回事?你不缠着男主,目光灼灼的看着我干什么?男主们呐?你们不为女主......
23.9万字4周前
拟造:夜白的兽间冒险 连载中
拟造:夜白的兽间冒险
Dr夜白
小狐狸也要变强!!
6.3万字4周前
无界之书 连载中
无界之书
冬幽雨
埋葬在世界最深处的故事,不属于任何存在的故事,直到那些故事都被淹没在了深土之中。被遗忘的名字,无限的选择,背叛或是信仰,从来都只是一念之间。......
26.9万字4周前
江阔云低断雁飞 连载中
江阔云低断雁飞
羽羽羽羽羽羽羽羽羽
2.2万字4周前