热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

转载自某百度空间“素数分解为平方和”

素数分解为平方和定理:设p是素数,则p是两个数的平方和,当且仅当p≡1(mod4)或p2。要由p≡1(mod4)推出p是两个数的平方和需要
素数分解为平方和

定理:设p是素数,则p是两个数的平方和,当且仅当p≡1 (mod 4)或p=2。

要由p≡1 (mod 4)推出p是两个数的平方和需要使用费马的无限下降算法:设p≡1 (mod 4),目的是找出A2+B2=p的一组解。

1 先找出一组可行解满足A2+B2=Mp,其中M2≡-1 (mod p)的某个解,B取1。任取一个数1(p-1)/4 (mod p),则由24章的定理可知A2≡a(p-1)/2≡(a/p) (mod p),即A2不是1就是-1,而且概率都是50%。多取几次a,必定能找到A2≡-1 (mod p)的解。

2 计算u≡A,v≡B&#xff0c;且-0.5M<&#61;u,v<&#61;0.5M的u和v。

3 由于u2&#43;v2≡A2&#43;B2≡0 (mod M)&#xff0c;可设u2&#43;v2&#61;Mr&#xff08;1<&#61;r

4 相乘&#xff0c;即(u2&#43;v2)(A2&#43;B2)&#61;M2rp。

5 上式可化为(uA&#43;vB)2&#43;(vA-uB)2&#61;M2rp。

6 左右都除以M2&#xff0c;得

((uA&#43;vB)/M)2&#43;((vA-uB)/M)2&#61;rp。

可以证明M|uA&#43;vB且M|vA-uB。

7 若r&#61;1&#xff0c;则算法结束&#xff0c;否则转2.

算法每次都维护一组可行解A2&#43;B2&#61;Mp&#xff0c;且每次执行都使得M单调递减。实际上&#xff0c;可以证明r<&#61;M/2&#xff0c;即系数至少会折半&#xff0c;因此总的运行次数是log级的。

对于任意整数a,如果a&#61;p1p2&#xff0c;且p1,p2都是符合上一章中分解条件的素数。设p1&#61;u2&#43;v2,p2&#61;A2&#43;B2&#xff0c;则

a&#61; (u2&#43;v2)(A2&#43;B2)&#61;(uA&#43;vB)2&#43;(vA-uB)2

换句话说&#xff0c;只要a分解质因数后所有的因子都是可分解的素数&#xff0c;则a可分解为两个整数的平方和。

定理&#xff1a;(a) 设m是正整数&#xff0c;且m&#61;p1p2…pr&#xff0c;其中p1…pr互不相同。则m可分解为两个整数的平方和当且仅当所有的pi≡1 (mod 4)或等于2。

(b) m可写成m&#61;a2&#43;b2 (其中gcd(a,b)&#61;1)当且仅当它满足下列条件之一&#xff1a;

(i) m是奇数且任何m的素因数模4余1

(ii) m是偶数&#xff0c;m/2满足(i)。

再考虑一下勾股数&#xff0c;可以得出结论&#xff1a;

一个数c是一组本原勾股数中最大的数&#xff0c;当且仅当c的素因数都模4余1。


转:https://www.cnblogs.com/wujiawei/archive/2010/08/17/1801727.html



推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 磁盘健康检查与维护
    在计算机系统运行过程中,硬件或电源故障可能会导致文件系统出现异常。为确保数据完整性和系统稳定性,定期进行磁盘健康检查至关重要。本文将详细介绍如何使用fsck和badblocks工具来检测和修复文件系统及硬盘扇区的潜在问题。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 本次考试于2016年10月25日上午7:50至11:15举行,主要涉及数学专题,特别是斐波那契数列的性质及其在编程中的应用。本文将详细解析考试中的题目,并提供解题思路和代码实现。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 本文探讨了如何像程序员一样思考,强调了将复杂问题分解为更小模块的重要性,并讨论了如何通过妥善管理和复用已有代码来提高编程效率。 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 本文深入分析了 USDC 的稳定性和可能的救援措施,探讨了在硅谷银行破产后 USDC 面临的风险以及行业内的反应。 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
author-avatar
红山村樵夫_799
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有