zoukankan      html  css  js  c++  java
  • 模板

    由于某些众所周知的原因,都是列出来icpc里面的常jian用guo的简单数论知识,应该都不会进行证明,甚至会不严谨,比如对0和1这样的数的特殊判定,都是根据实际情况特别处理。毕竟目前只讲究应用而不关心理论的优美。

    因数

    假如存在一个整数(k),使得(n=kd),则称(d)整除(n),或者(d)(n)的一个因数。

    不过一般题目中指的都是正因数,有些奇葩题里面会有负的因数,负数在模意义下的运算有点奇怪。

    质数

    恰好有2个正因数的正整数。

    一些常见的质数:998244353(原根是3),1e9+7,1e9+9,19260817,10007,10009

    判定(n)是不是质数的方法:

    (O(sqrt{n}))直接分解、预处理小质数之后再枚举质数分解(根据质数定理貌似会快一点但是没什么用,也是(O(sqrt{n})))、Miller–Rabin算法。

    合数

    有大于2个正因数的正整数。

    分解合数的方法:

    和验证质数类似、Pollard-Rho算法。

    众所周知,1既不是质数也不是合数,不过在很多情况下它拥有与质数类似的表现(比如各种数论函数),但是由于它和算术基本定理有些瓜葛,还是单列出来方便。

    所以0是质数还是合数呢?应该质数合数这些概念是对正整数才适用的吧。反正都是特例特殊判断就可以了。(0在有些函数中表现得奇怪,比如阶乘,应该是充当一个单位元的角色,而不是简单的全部认为函数值是0)

    质数定理

    (x)以内(一般认为“(x)以内”都是指([1,x]))的质数的个数,记为(pi(x)),质数定理给出这个函数的一个很好的估计(pi(x)simfrac{x}{ln(x)}),这个(ln)很明显就是指自然对数了。

    常见的,1e5以内的质数个数不超过9.6e3,1e7以内的质数个数不超过6.7e6,1e9以内的质数不超过5.1e7。

    好像有一些亚线性筛法可以求出(n)以内的质数的个数。更准确的说,至少min25筛可以,可以快速准确求出1e11内的(pi(x))。(min25筛的变形好像可以解决很多非积性函数前缀和的问题)

    参考资料

    素数 - OI Wiki

  • 相关阅读:
    flutter doctor出现问题 [!] Android toolchain
    CSS中的cursor属性
    致蝙蝠侠阿卡姆三部曲——最伟大的改编游戏
    ajax的使用:例题、ajax的数据处理
    用ajax对数据进行删除和查看
    ThinkPhp框架:验证码功能
    ThinkPhp框架:父类及表单验证
    ThinkPhp框架:分页查询和补充框架知识
    ThinkPhp框架对“数据库”的基本操作
    ThinkPHP框架知识的注意点
  • 原文地址:https://www.cnblogs.com/KisekiPurin2019/p/11804413.html
Copyright © 2011-2022 走看看