zoukankan      html  css  js  c++  java
  • 质数和合数

    定义

    质数又称素数(下文中不区分质数和素数)

    设 $ p in Z_+ $
    ((1)) 当且仅当 $ p > 1 $ 且只能被 $ 1 $ 和 $ p $ 整除(即 $ p $ 仅有两个因子 $ 1 $ 和 $ p $ ), 则称 $ p $ 是一个质数;
    ((2)) 否则, 若 $ p > 1 $ , 则称 $ p $ 是一个合数;
    ((3)) 当 $ p = 1 $, $ p $ 既不是质数也不是合数.

    性质

    ((1)) 质数有无穷多个.
    ((2)) 若 $ n $ 是一个合数, 则 $ n $ 至少有一个质因子.
    ((3)) 若 $ n $ 是一个合数, 其中最小的质因子一定不大于 $ sqrt n $
    ((4)) 若 $ n $ 是一个合数, 不大于 $ n $ 的质数约有 $ dfrac{n}{ln n} $ 个.

    唯一分解定理

    把正整数 $ n $ 写成质数的乘积
    $ n = p_1^{a_1}p_2^{a_2}p_3^{a_3}...p_k^{a_k} $, 其中 $ p_i $ 为质数, $ a_i $ 为正整数
    这样的表示是唯一的.

    试除法

    最简单的判断一个数(n)是否为质数的方法
    只需要从 $ 2 $ 除到 $ sqrt n$ 即可, 如果中间有整数能整除 (n)(n) 是合数, 反之 $ n $ 是质数

    例题

    [CF 776B] Sherlock and his girlfriend

    证明性质1

    反证法:
    假设素数是有限个, 设最大素数为 (P)
    设 $ N $ 是所有素数之积加一, $ N = 2 imes 3 imes ... imes P + 1 $
    所以 $ N > P $
    又因为 (P) 是最大素数
    所以 $ N $ 是合数
    但是 $ N $ 除以任何一个素数都余 $ 1 $
    ((1)) 若 $ N $ 是素数, 则与 $ P $ 是最大素数矛盾.
    ((2)) 若 $ n $ 是合数, 则 $ N $ 必有一个大于 $ P $的素数约数, 与假设矛盾.
    所以素数有无限个

    证明性质2

    反证法:
    假设存在合数没有质因子
    那么这些合数中必然有最小的一个合数 $ a $
    因为 $ a $ 为合数
    所以一定可以写成除了 $ 1 $ 和 $ a $ 之外的整数的积
    设其中一个为 $ b $. 则 $ b < a $
    又因为 $ a $ 没有质因数
    那么 $ b $ 为合数, 且也不存在质因数,
    则 $ b $ 也是没有质因数的合数
    但是 $ b < a $ 与假设矛盾
    所以任意一个合数至少有一个质因子.

    证明性质3

    反证法:
    (n)最小的质因数是$d,space d > sqrt{n} $
    那考虑(n)的分解形式:$ n = d imes x space , space x in N_+ $
    显然 $ x = dfrac{n}{d} $为小于 $ d $ 的因数,矛盾
    如果 $ x $ 为合数,不断的分解为质数即可

    证明性质4

    知道就好了其实是我不会

    证明唯一分解定理

    有两处值得证明, 一是存在性, 二是唯一性

    存在性

    反证法:
    假设 $ n $ 为不能被分解为质数乘积的自然数中的最小的一个
    因为如果 $ n $ 为素数
    那么 $ n $ 显然只能被分解为 $ n $
    所以假设 $ n $ 为大于 $ 1 $ 的合数
    所以一定存在两个数 $ a , b $ 能整除 $ n $ ,且 $ 1 < a , b < n,$ 所以得到 $ n = a imes b $
    如果 $ a , b $ 都为质数, 与假设矛盾
    如果 $ a , b $ 中有一个为合数
    假设是 $ a $
    因为 $ n $ 已经是最小的不能被分解为素数乘积的合数了
    如果 $ a $ 不能被分解
    那么 $ n $ 为最小的不能被分解的合数这个条件就出现了矛盾
    所以 $ a $ 是可以被分解为素数乘积的
    所以 $ n $ 为能被分解为质数乘积, 与假设矛盾
    同理当两个数都为合数的时候会得到相同的矛盾

    唯一性

    反证法:
    假设 $ n $ 为最小的不能被唯一分解为一系列素数相乘的合数
    设 $ n $ 能被分解为以下两种形式
    (n = p_1p_2p_3...p_n)
    (n = q_1q_2q_3...q_n)
    其中 (p_i)(q_i) 均为素数,且单调不减
    如果 (p_i = q_i)
    那么两式联立时会被约掉,那样的话我们能得到一个更小的素数组合
    所以 (p_i) 与 任何一个 $ q_i $ 都不相等,(q_i) 与 任何一个 $ p_i $ 都不相等
    所以 $ p_i eq q_i $
    那么设 $ p_i < q_i$
    然后用 $ p_1 $ 去替换②中的 (q_1) (这里用 (p_1)(q_1) 表示, 直接用 (p_i)(q_i) 表示也行,不过 (p_1)(q_1) 表示更容易理解)
    从而得到一个比 $ n $ 更小的数 $ m $
    $ m = p_1q_2q_3...q_n$
    设 $ X = n − m $
    那么它应该会有以下两种形式:
    (X = p_1p_2p_3...p_n - p_1q_2q_3...q_n = p_1(p_2p_3…p_n − q_2q_3…q_n))
    (X = q_1q_2q_3...q_n - p_1q_2q_3...q_n = (q_1 -p_1 )(q_2q_3…q_n))
    因为 $ X $ 比 $ n $ 要小
    由假设得
    因为 $ n $ 为最小的不能被唯一分解为一系列素数相乘的合数
    所以 $ X $ 是能被唯一分解为一系列素数的乘积的
    由③得, (p_1)(X)的一个质因子
    因为 $ X $ 的分解具有唯一性
    所以 (p_1) 要么包含于 $ q_1 − p_1 $ 中, 要么包含于 $q_2q_3…q_n $ 中

    ((1))(p_1) 包含于 $ q_1 − p_1 $ 中
    那么 $ dfrac{q_1 − p_1}{p_1} $ 为整数
    即 $ dfrac{q_1}{p_1} - 1 $ 为整数
    那么 $ dfrac{q_1}{p_1}$ 为整数
    又因为 (q_1, p_1) 为素数 且 (q_1 eq p_1)
    所以 $ dfrac{q_1}{p_1}$ 不可能为整数
    矛盾

    ((2)) 当 $ p_1 $ 包含于 (q_2q_3…q_n)
    因为假设中 (p_1) 与 任何一个 $ q_i $ 都不相等
    所以 $ p_1 $ 不包含于 $q_2q_3…q_n $
    矛盾

    综上所述:正整数 $ n $ 写成质数的乘积的表示是唯一的

    试除法证明

    反证法:
    设 $ N = p imes q $
    若 $ p > sqrt N, q > sqrt N $
    则 $p imes q > N $
    所以 (p, q) 中有一个小于等于 $ sqrt N $
    所以 只需要判断到 $ sqrt N$ 即可

  • 相关阅读:
    第一节:从程序集的角度分析System.Web.Caching.Cache ,并完成基本封装。
    大话缓存
    第二节:SQLServer的安装及使用
    OpenCV特征点检测——ORB特征
    Opencv学习笔记--Harris角点检测
    关于Yuri Boykov and Vladimir Kolmogorov 于2004年提出的max flow / min cut的算法的详解
    [论文笔记] CUDA Cuts: Fast Graph Cuts on the GPU
    Graph Cut and Its Application in Computer Vision
    OpenCV中openMP的使用
    四种简单的图像显著性区域特征提取方法-----> AC/HC/LC/FT。
  • 原文地址:https://www.cnblogs.com/lieberdq/p/13270341.html
Copyright © 2011-2022 走看看