zoukankan      html  css  js  c++  java
  • 线性筛2 筛约数个数

    线性筛2

    1.筛约数个数

    根据唯一分解定理

    (n = p_1^{k_1}p_2^{k_2}...p_q^{k_q})

    任意质因子的任意次幂都可以随意组合, 所以根据乘法原理

    (n)的约数个数为 ((1+k_1)*(1+k_2)*(1+k_3)*...(1+k_q))

    so, 可以根据这个线性筛约数个数

    首先设 (num(i))(i)(k_1) (也就是最小质因数的指数) (d(i))(i) 的约数个数

    然后根据线性筛那套理论 分三种情况

    1. (large i是质数)

    很显然 $num(i) =2 $ (d(i) = 2)

    1. (i mod prime[j]=0)

    说明(i) 中有这个质因数,且是(i) 的最小质因数

    (d(i*prime[j])=(1+k_1+1)*(1+k_2)*(1+k_3)*...(1+k_q))

    (=d(i)/num(i) * (num(i) +1))

    (num(i*prime[j])=num(i)+1)

    1. (i mod prime[j]!=0)

      说明(i) 中没有这个质因数,且(prime[j])(i*prime[j]) 的最小质因数

      (d(i*prime[j])=(1+k_1)*(1+k_2)*(1+k_3)*...(1+k_q)*(1+k_{q+1}))

      (=d(i)*(1+k_{q+1}))

      (=d(i)*2)

      (num(i*prime[j])=2)

      这里由于(prime[j]) 是第一次出现 所以是2

  • 相关阅读:
    SQL注入
    SQL注入
    CSRF
    Docker官方Tomcat映像修改Server.xml
    github+jenkins+maven+docker自动化构建部署
    Docker下的Jenkins
    拿来即用学PYTHON:序
    Python-字典
    Python-列表与元组
    程序员英语轻松学1
  • 原文地址:https://www.cnblogs.com/spbv587/p/11788826.html
Copyright © 2011-2022 走看看