数论吧 关注:14,180贴子:81,894
  • 5回复贴,共1
求助

证明或证否Carmichael数n-1是practical数

只看楼主收藏回复

求证明或证否Carmichael数n,n-1是否都是practical数?


IP属地:重庆来自Android客户端1楼2025-04-08 23:10回复
    最小的反例应该是63973=7*13*19*37, 63972=2²*3²*1777, 前者是Carmichael数, 后者不是practical数
    因为Carmichael数比较少, 所以可以检验这些数减1是不是practical数来找反例, 10⁸以内有255个Carmichael数(绝对伪素数), 在oeis A002997的links可以下载
    然后我写了一个判断practical数的程序, 如果没错的话, 这255个数中应该有14个反例, 63973之后下一个是126217


    IP属地:北京来自Android客户端2楼2025-04-09 00:29
    收起回复
      一个正整数n是practical数, 当且仅当不超过n的每个正整数m都能表示成n的若干个互不相等的正因数之和
      oeis A005153的comments介绍了一个很有用的检验practical数的定理 :
      将大于1的正整数n表示成p₁^α₁*p₂^α₂*…*p[k]^α[k], 其中k是正整数, p₁<p₂<…<p[k]是n的全部素因子, α₁,α₂,…,α[k]是正整数, 对1≤i≤k, 用m[i]表示p₁^α₁*p₂^α₂*…*p[i-1]^α[i-1], m₁=1
      则正整数n>1是practical数, 当且仅当对任意1≤i≤k, σ(m[i])+1≥p[i]
      这个结论的必要性是由p₁-1,p₂-1,…,p[k]-1这些数得到的, 充分性可以用归纳法证明
      按照oeis的链接, 应该是B.M.Stewart在1954年的论文Sums of distinct divisors证明了这个定理


      IP属地:北京来自Android客户端3楼2025-04-09 00:47
      回复
        用这个结论写了一个判断大于1的正整数是否是practical数的程序
        对n>1, 令m=n, r=1, 从p=2到n循环
        (1)判断m能否被p整除
        (1.1)如果m能被p整除, 就判断p是否小于r+2
        (1.1.1)如果p<r+2, 就令s=1, 从i=1开始循环用p去除m, m每次被p整除, s就变为sp+1, 直到m不被p整除, 将r变为rs
        这保证了下一个整除m的p一定是素数, 并且r此时等于结论中的σ(m[i])
        (1.1.2)如果p>r+1, 按照结论这样的数不是practical数, 跳出p=2到n的循环
        (1.2)判断m²是否小于n
        (1.2.1)如果m²<n, 则m<n/m+1<σ(n/m)+1, 说明m的每个素因子一定都不超过此时的r+1=σ(n/m)+1, 后续的检验结果一定是n为practical数, 这样就跳出p=2到n的循环
        循环结束或跳出循环后输出结果, 这样计算步骤应该不多, 检验得挺快


        IP属地:北京来自Android客户端4楼2025-04-09 01:08
        回复