用筛法。

我们仅考虑分解奇数。(原因?)

现在我们可以假设n=pq,pq必可写作(x+y)(x-y)

也即我们需要找到

x²≡y² (mod n)

我们可以考虑,在 kn 附近的完全平方数 x² 中,分解 x² mod n. 由于 x² 接近 kn, 因此 x² mod n 一般因数比较小。对于每个这样的完全平方数都逐个分解是很慢的,这个时候我们就可以使用筛法。

在找到了足够多 x² mod n 的因数分解后,我们就可以用线性代数方法找到一个 y² 了。具体怎么做请自行思考。

Upd: 有心情所以再来写点。

你可以考虑在一个模 n 意义下的椭圆曲线上做加法。如果 n=pq, 你有一个椭圆曲线 E 和一个在椭圆曲线上的点 a, 那么有当你在计算 ta 时,如果 #E(F_p) | t, 则会到无穷远点,这个时候你在模 n 意义下计算就能得到 p 的值。这个算法可行的原因是关于 #E(F_p) 的Hasse定理和一个关于其分布的 conjecture. (当然还有smooth number相关的那些估计)

Upd Upd: 表示勘误。

注意这些提到的算法都不保证能找到一个解,但是找到一个非平凡解的概率可以很高。这两个算法都稍逊于 SoTA(GNFS).

python求一个数的因子_求一个整数的所有素数因子的思路是什么?相关推荐

  1. python练习题(python之“求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数” 等)

    实验环境:python2.7 题目1:python之"求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数" 程序: import math def factorial(n): ...

  2. 怎样使用计算机求一个数的立方根,计算机求数立方根的数学教案

    计算机求数立方根的数学教案 一,教学目标 1.会用计算器求数的立方根. 2.通过用计算器求立方根,培养学生的类比思想,提高运算能力: 3.利用计算器求立方根,使学生进一步领会数学的转化思想: 4.通过 ...

  3. python求一个数的阶乘_阶乘计算python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 问题本身很简单,主要是通过这个小问题来演示python的一些用法,例如测试代码运 ...

  4. python函数编程求三个数的最小公倍数_Python求三个数的最小公倍数

    题目 求三个数的最小公倍数 思路 首先求两个数的最小公倍数,再求这个最小公倍数与第三个数的最小公倍数就是最终结果 有两种方案求两个数的最小公倍数 1. 分解质因数,也是短除法(在程序上差别不大) 循环 ...

  5. C++中如何读取一个数的位数_求1000以内的水仙花数

    点击上方 蓝字关注我们 大家好,我是阿汤哥. 看知乎上有朋友说还不明白怎么判断水仙花数,今天我们就来看看这个问题.(PS:"求1000以内的水仙花数"这道题阿汤哥记忆犹新.到现在还 ...

  6. python去掉最高分和最低分_去掉一个最高分,去掉一个最低分求平均值(trimmean)...

    如下图: 演讲比赛,要求去掉一个最高分,去掉一个对低分后求平均值.当然这个太简单了,我们可以用max求出最大值,用min求出最小值,然后sum求出数据总和,用(总和-最大值-最小值)/(数据总个数-2 ...

  7. r语言 求几个数的最小公倍数_【微课】北师大版五年级数学上册第五单元8找最小公倍数...

    教材内容:教材81-82页的内容. 本节课的内容是在学生掌握了"倍"的基础上学习的,主要是为分数的大小比较和通分奠定基础. 复习旧知 1.因数和倍数的意义: 在a×b=c(a,b, ...

  8. python比较三个数的大小_怎样用python比较三个数大小【Python教程】,用python比较三个数大小...

    大部分初学编程的人来讲刚开始都邑演习推断两个数或许三个数的大小,来熟习某种言语的特征和最基本的if,else轮回,当我们进修了更高等的语法学问后,又会有差别的完成体式格局,比方顺次吸收用户输入的3个数 ...

  9. python步骤解析 给定一个整数数组和目标值_给定一个整数数组和一个目标值,找出数组中和为目标值的两个数 例如给定nums = [2,7,11,15],target = 9...

    python解决方案 nums = [1,2,3,4,5,6] #假如这是给定的数组 target = 9 #假如这是给定的目标值 num_list = [] #用来装结果的容器 def run(nu ...

最新文章

  1. 计算机视觉系统中图像究竟经历了哪些“折磨”
  2. 带你测试对比深度学习框架!TensorFlow,Keras,PyTorch...哪家强?(附数据集)
  3. MM--移动类型的配置相关的系统表,举例说明SAP是如何根据配置抛帐的
  4. 导入数据中文乱码_基于Navicat和Kettle的数据迁移完全解读(多图)
  5. 8位16位32位单片机区别
  6. 百度地图Polyline 清除
  7. linux 0891端口,凯立德导航专用版本号及分辨率、端口、波特率
  8. mysql语法之update
  9. 前端生成小程序二维码
  10. 10 部顶级数学纪录片
  11. 中国计算机类核心期刊
  12. DC中保存ddc格式文件(亲测有效!)save the unmapped design in ddc format
  13. 教你如何批量修改图片分辨率?
  14. 搜狗收录域名的方法及工具
  15. C++函数参数的缺省值
  16. 量化基金投资之套利策略简介
  17. 我对《简约至上》的理解
  18. api-ms-win-crt-runtime-l1-1-0.dll 丢失
  19. Spring Boot 整合 Spring Data JPA
  20. android studio 模拟器 for mac,mac下androidStudio 运行模拟器出现:

热门文章

  1. JAVA SE知识点总结
  2. 怎样在QML中设计一个expandable ListView
  3. Struts2标签-checkbox只读属性设置
  4. 搜狐超越新浪给创业者的两个启示:不断+耐心布局
  5. 电脑键盘上每个键的作用_键盘F键有什么作用 键盘F键作用介绍【详解】
  6. 一个完整的项目流程图_工程建设项目史上最完整的全流程图,必收藏备用!
  7. 全国Python科研应用专题实操培训班通知
  8. Python使用Queue对象实现多线程同步小案例
  9. php函数查询sprintf,PHPsprintf函数用例解析
  10. 数据包络分析方法与maxdea软件_SEM常用的4种数据分析方法,让你的优化工作事半功倍!...