在介绍威尔逊定理之前,我们先给出一个引理:
如果 p p p是素数,正整数 a a a是其自身模 p p p的逆,当且仅当 a ≡ 1 ( m o d p ) a\equiv1(mod\ p) a≡1(mod p)或者 a ≡ − 1 ( m o d p ) a\equiv{-}1(mod\ p) a≡−1(mod p).
证明:如果 a ≡ 1 ( m o d p ) a\equiv1(mod\ p) a≡1(mod p)或 a ≡ − 1 ( m o d p ) a\equiv{-}1(mod\ p) a≡−1(mod p),则 a 2 ≡ 1 ( m o d p ) a^2\equiv1(mod\ p) a2≡1(mod p), 所以 a a a是其自身模 p p p的逆。反之,如果 a a a是其自身模 p p p的逆,即 a 2 ≡ 1 ( m o d p ) a^2\equiv1(mod\ p) a2≡1(mod p),则 ( a 2 − 1 ) m o d p = 0 (a^2-1)\ mod\ p=0 (a2−1) mod p=0,因为 p p p是素数,所以 ( a − 1 ) m o d p = 0 (a-1)\ mod\ p=0 (a−1) mod p=0或者 ( a + 1 ) m o d p = 0 (a+1)\ mod\ p=0 (a+1) mod p=0,因此 a ≡ 1 ( m o d p ) a\equiv1(mod\ p) a≡1(mod p)或 a ≡ − 1 ( m o d p ) a\equiv{-}1(mod\ p) a≡−1(mod p).
接着,我们再给出威尔逊定理的定义:
威尔逊定理 (Wilson’s Theorem):如果 p p p是素数,则 ( p − 1 ) ! ≡ − 1 ( m o d p ) (p-1)!\equiv-1(mod\ p) (p−1)!≡−1(mod p).
证明过程参考这里:威尔逊定理的证明
同时,威尔逊定理的逆也是成立的,它可以这么表述:
设 p p p是正整数且 p ≥ 2 p\ge2 p≥2,如果 ( p − 1 ) ! ≡ − 1 ( m o d p ) (p-1)!\equiv-1(mod\ p) (p−1)!≡−1(mod p),则 p p p是素数。
显然威尔逊定理在计算机邻域的最大作用就是给出了一个素数判定的条件,光说不练假把式,下面我们将展示一道例题来真正了解下,威尔逊定理的使用。
ACM Central European Programming Contest 2008(HDOJ 2973)
这道题的大体题意是:求出这个表达式的值

我们很容易看出来这个 3 k + 6 3k+6 3k+6和 3 k + 7 3k+7 3k+7就差了1,而 3 k + 6 3k+6 3k+6又是阶乘的形式,非常明显的一个威尔逊定理的应用,
求解这道题时我们我们先判断 3 k + 7 3k+7 3k+7是不是素数,对于单个表达式而言,是素数的话值为1,不是则为0;
那么我们直接打表计算前缀和就ok。
AC代码如下:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>using namespace std;const int maxn = 1e5+5;
int ans[maxn];bool isprime(int n)
{if(n%2 == 0)return false;for(int i=3;i*i<=n;i++){if(n % i== 0)return false; }return true;
}int main()
{int case;cin >> case;ans[0] = 0;for(int i=1;i<maxn;i++)           //打表 {if(isprime(3*i+7))ans[i] = ans[i-1]+1;elseans[i] = ans[i-1];}while(case--){int n;scanf("%d", &n);printf("%d\n",ans[n]);}
}

数论学习四之——威尔逊定理相关推荐

  1. 数论四大定理之——威尔逊定理

    作为数论四大定理中的一员,威尔逊定理可谓是最简单的一个定理了.虽然它的用处也不想欧拉定理或中国剩余定理那么广泛,但是,我们也必须要了解威尔逊定理,因为没有了它,很多题目都会将你深深的折磨的.那我们现在 ...

  2. 夜深人静写算法(三十七)- 威尔逊定理

    文章目录 一.前言 二.威尔逊定理 1.定义 2.充分性 3.必要性 三.威尔逊定理的应用 1.广义情况 2.配合素数判定 3.配合逆元的应用 四.威尔逊定理相关题集整理 一.前言   目前本专栏正在 ...

  3. 7. 数论四大定理(威尔逊定理、欧拉定理、费马小定理、孙子定理)

    一.准备工作 点击查看数论基础知识 二.威尔逊定理 威尔逊定理给出了判定一个自然数是否为素数的充分必要条件.但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大. 1. 定理及其变形 当且仅当p为素 ...

  4. 数论四大定理(欧拉定理、费马小定理、中国剩余定理、威尔逊定理)

    前置知识 同余 假设 a,ba,ba,b 都是整数,如果 nnn 是一个正整数,且存在整数 kkk 使得 a−b=k×na−b=k \times na−b=k×n,则称 a,ba,ba,b 模 nnn ...

  5. 四方定理 数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示。

    /* 四方定理数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示.我们可以通过计算机验证其在有限范围的正确性.对于大数,简单的循环嵌套是不适宜的.下面的代码给出了一种分解方案.请仔细 ...

  6. 数学--数论--四大定理之威尔逊定理

    威尔逊定理 当 (p−1)!≡−1(modp)(p−1)!≡−1(modp)(p−1)!≡−1(modp)时,ppp为素数. p∣(p−1)!+1p∣(p−1)!+1p∣(p−1)!+1 即(p−1) ...

  7. 【学习笔记】原根 + 欧拉定理 + 威尔逊定理

    欧拉定理:对于互质的两个正整数 aaa 和 mmm,若 (a,m)=1(a,m) = 1(a,m)=1,那么 aϕ(m)≡1(modm)a^{\phi(m)}\equiv 1\pmod maϕ(m)≡ ...

  8. 学习随笔——威尔逊定理证明

    今天看了网络上很多威尔逊定理的证明,深有感触,决定总结如下,以期让那些可能没有深入接触过初等数论的学习者也能没有阻碍地看完这一篇证明. 现陈述定理如下: 当且仅当P为素数时,满足(P-1)!≡ -1 ...

  9. 数论四大定理之威尔逊定理

    本文总结了网上关于威尔逊定理的证明,用逻辑更通顺的数学语言表述出来,仅供参考 威尔逊定理 ppp 为质数⟺(p−1)!≡−1(modp)\Longleftrightarrow(p-1)!\equiv ...

最新文章

  1. Windows纸牌×××式计分法
  2. 老板问我桌面演练(TTX)是什么,我直接给他发了定义、示例和目标
  3. js get/set Cookie
  4. python 操作ps_使用Python分离出ps的输出
  5. redux异步action_React躬行记(12)——Redux中间件
  6. yii2增删改查及AR的理解
  7. java中filehandler_java – 如何配置特定FileHandler的属性
  8. 常量指针与指针常量勘误
  9. C/C++(C++返回对象与应用区别,类成员的存储)
  10. 关于协程及其锁的一些认识
  11. 六、CISSP 官方学习指南(OSG)第 7 版术语对照表
  12. WTL for MFC Programmers, Part V - Advanced Dialog UI Classes
  13. php网站背景颜色代码,html如何设置背景颜色?
  14. 陕西车牌顺口溜~~~~~~~~~~~
  15. 接受自己平庸真的很难吗?你知道163邮箱登陆界面是什么吗?
  16. python数字转换拼音程序_课内资源 - 基于Python的拼音汉字转换程序
  17. 【Linux】创建、修改和删除用户组(groupadd | groupmod | groupdel)
  18. js什么是闭包?简单理解
  19. ICP许可证怎么申请?
  20. 单向链表和双向链表的优缺点及使用场景

热门文章

  1. 河南专升本公共英语语法考点分析---非谓语动词
  2. ZeroClipboard2跨浏览器复制粘贴
  3. 计算机意识状态在线场所,科学网—浅谈计算机意识的有效范围 - 于金辉的博文...
  4. 牛客网错题集系列(三)
  5. 华科校园网内ubuntu12.04用锐捷客户端联网流程详解
  6. k8s上使用流水线部署应用
  7. 简单理解操作系统之存储器管理
  8. java导出excel插入图片
  9. DBA在项目中的角色
  10. 20189220 余超《Linux内核原理与分析》第七周作业