第22卷 第2期

2004年4月

运城学院学报

Journal of Yuneheng University

V01.22 NO.2

Apr.2004

伪素数——绝对伪素数的分析与探求

王 琦,解建国

(运城学院计算机科学与技术系.山西运城044000)

摘 要:伪素数的提出及研究成果,使素数的研究进入到一个更加丰富的界面,使它成为研究素数的一种方

法。文章在证明了伪素数有无穷多的同时.还给出了由其引出的绝对伪素数的求解方法。

关键词:素数;伪素数;绝对伪素数

中图分类号:0187.1文献标识码:A 文章编号:1008—8008(2004)02--0012—02

由费尔玛(Fermat)小定理引出的伪素数,是素数

研究中的重要成果,是数论研究中很有价值的“副产

品”,由其又引出的绝对伪素数,目前仍在探索之中,下

面给予总结,并试图给出寻求的计算机方法。

一、关于伪素数

1.伪素数的提出

伪素数是假素数,实际上它是合数,但是它必须是

由费尔玛小定理得出的。下面叙述并给予必要的证

明。

费尔玛小定理 若p为素数,则口p—a是P倍数。

如果再满足P与a互寒,则口P1一l是P的倍数。

费尔玛小定理的强化结论用同余式来表达就是:

a,’--1三1 rood(p) (1)

(1)式是数论之精华,它可以这样证明:

因为P l口p—a,即:户}a(ap-1—1),因为P与a互

素,所以有:P I口扩1—1,即是:口卜1三1 mod(p)。

但是,当声与a互紊,且口扩1一l能被p整除时,P

不一定是素数。若这时户不是素数,那么它就叫伪素

数。再考虑到a的取值,就叫a一伪素数。通常所说的伪

素数是2一伪素数。

比较简单的一个伪素数是341,虽然341能够整除

2340—1,但341;11·3l是一个合数。

2.伪素数有无穷多的一种证明方法

素数有无穷多个,而伪素数也有无穷多个,我们

有:

定理 如果行是伪素数,则2n—l也是伪素数,所

以伪素数有无穷多个。

定理中的伪素数聍是2一伪素数,如果2一伪素数

有无穷多个,由伪素数的定义,当然伪素数也就有无穷

多个。证明如下:

根据伪素数的定义,2一一l与2互素是显然的,只

需证明两个问题:第一要证明2一一1 221~1 1 1;第二

要证明2n—l可分解因数。

先证明第一个问题。事实上,因n是伪素数,所以挖

I 2—1一l,因此可设2—1—1一勋,这里k为某一个确

定的整数。由于:

221—1—1—1=221—2—1=2Z(2”1一1)一1=

(22一一1)2—1=(22一一1—1)(22一一1+1)一(2h一

1)(2k-+1)=[(2一)‘一1](2蛔+1)。因为:(2一)‘一1=

(2一一1)[(2一)卜1+(2n)。卜2+⋯2一+1],所以有:2”一

1 221—1—1—1。

其次证2一一1可分解因数。事实上,因,z是伪素数,

所以可设7l;h·l(h和Z均大于2),这样有:2n—l;

2Ⅳ一1=(2h)f一1=(2h—1)[(2h)卜1+(2h)l--2+

⋯26+1]。

这就证明了2一一l是合数,所以它是伪素数。考虑到迭

代原理,便知伪素数有无穷多个。

实际上,以2为底的伪素数除了341以外,还有

561,645,1105,1387等。

前面提到的伪素数,由于其底数为2,所以它们都

是奇伪素数,实际上还存在着偶伪素数,当然它们的底

数不能是2,并且已证明偶伪素数也有无穷多个,这里

不赘述。

伪素数研究的主要对象是2一伪素数,对于a≠2

的伪素数,研究起来方法相似,但逐一研究很显繁琐,

在此仅举一例说明。例9l能

伪素数c语言代码,伪素数--绝对伪素数的分析与探求相关推荐

  1. R语言数据分析笔记——Cohort 存留分析

    作者简介Introduction 杜雨,EasyCharts团队成员,R语言中文社区专栏作者,兴趣方向为:Excel商务图表,R语言数据可视化,地理信息数据可视化. 个人公众号:数据小魔方(微信ID: ...

  2. 遗传算法c语言程序,遗传算法c语言代码.doc

    遗传算法c语言代码 遗传算法代码 #include #include #include #include #include struct group //染色体的结构 { int city[citie ...

  3. 071_html语言代码

    1. ISO语言代码 1.1. 国际标准化组织(International Organization for Standardization, ISO)简称ISO, 是一个全球性的非政府组织, 是国际 ...

  4. 嵌入式C语言代码规范

    C语言代码规范 参考安富莱C语言编码规范 1.文件与目录 1.文件及目录的命名规定可用的字符集是[A-Z:a-z:0-9:._-]. 2.源文件名后缀用小写字母 .c 和.h. 3.文件的命名要准确清 ...

  5. java 与c 运行效率_Java语言与C语言代码运行效率的比较

    <Java语言与C语言代码运行效率的比较>由会员分享,可在线阅读,更多相关<Java语言与C语言代码运行效率的比较(2页珍藏版)>请在人人文库网上搜索. 1.Java语言与C语 ...

  6. Python语言学习:python语言代码调试—异常处理之详细攻略

    Python语言学习:python语言代码调试-异常处理之详细攻略 目录 python语言代码调试-异常处理 异常捕捉可以使用 try/except 语句 相关文章 Python3 错误和异常 | 菜 ...

  7. 编程笔试(解析及代码实现):猴子吃桃。猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个…的C++、Java、Python、C#等语言代码实现

    编程笔试(解析及代码实现):猴子吃桃.猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个. 第二天早上又将剩下的桃子吃了一半,还是不过瘾,又多吃了一个.以后每天都吃前一天剩下的一半再加一个 ...

  8. c语言错误 xef代表什么,单片机C语言代码手册 含100多个经典C程序

    1 单片机单片机 C 语言代码手册语言代码手册 1 LED 灯灯 点亮一个点亮一个 LED include void main while 1 P0 0 x01 P2 0 x7d 流水灯闪烁流水灯闪烁 ...

  9. c 语言怎么编译 .dll,将你的 C 语言代码编译成 .NET

    介绍 通常情况下,对于那些使用C语言编程并开始用C#/ VB或一些其他的用于.NET的编译语言编程,那么他们希望或者甚至是需要调用我们用C语言编写的函数代码. 每当我在互联网上钻研,或说要在编译器中使 ...

  10. 匈牙利算法c语言代码,漫谈匈牙利算法

    匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名.匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最 ...

最新文章

  1. C#3.0入门系列(五)-之Where操作
  2. 五天带你学完《计算机网络》·第一天·物理层
  3. 两个inline-block消除间距和对齐(vertical-align)
  4. 一道面试题,我自己的解法
  5. oracle装了客户端怎么登陆账号,分享Oracle 11G Client 客户端安装步骤(图文详解)...
  6. ztree 指定节点清空_节点操作
  7. 使用触发器记录oracle用户登陆信息
  8. 非表单元素如何使用焦点事件
  9. 一个导出redis有序集合sorted-sets的shell脚本
  10. 转载---ubutun18.04系统安装搜狗输入法
  11. Linux内核编程四部曲
  12. 使用VS Code插件Code Runner一键运行ANSYS命令流
  13. 运用matlab求黑塞矩阵,用matlab求黑塞矩阵
  14. 哪个计算机软件可以编辑动画文字,文字动画视频电脑版
  15. JavaScript高级—正则表达式(正则表达式在 JavaScript 中的使用、正则表达式中的特殊字符、正则表达式中的替换)
  16. XDG0062 XAML 与XDG0008 XAML 错误的解决办法
  17. Lecture05:随机市场出清
  18. 【转】WebMagic-总体流程源码分析
  19. 三菱plcascll转换16进制_三菱FX系列PLC的SER指令使用方法
  20. 原生JS写仿淘宝搜索框(代码+效果),可实现3级搜索哦!

热门文章

  1. error CS0227: Unsafe code may only appear if compiling
  2. c语言中逆序乘积,逆序乘积式(示例代码)
  3. git bug分支管理
  4. ubuntu邮件客户端_在Ubuntu中将Gmail设置为默认邮件客户端
  5. TYUT太原理工大学2022数据库考试题型大纲
  6. android-c2手机,Nokia C2手机亮相:搭载紫光展锐处理器
  7. 【学习OpenCV4】进度条实现总结
  8. 如何读取通用配置文件conf?
  9. STM32F103时钟系统
  10. 使用netwox实现tcp rst 攻击及防御措施