zoukankan      html  css  js  c++  java
  • 数学基础——质数

    算术基本定理(唯一分解定理)

    • 内容 :

    • 应用

      • 分解质因数
    int cnt,p[N],a[N];
    void div(ll n) {
    	int cnt = 0;
    	for(int i = 2;i*i <= n; ++i) {
    		if(n%i == 0) {
    			p[++cnt] = i;
    			while(n%i == 0) {
    				n /= i,++a[cnt];
    			}
    		}
    	}
    	if(n > 1) {
    		p[++cnt] = n;
     		++a[cnt];
     	}
     }
    
    • 求约数个数

      约数个数函数

    [ d(n) = prod (a_i+1) ]

    • 求约数和

      约数和函数

      [sigma(n) = prod(sum_{j = 0}^{a_i}p^j) = prod frac{1-p_i^{a_i+1}}{1-p_i} ]

    线性筛

    • 原理 : 保证每个数只会被其最小的质因子筛去

    • 实现 : 设(v_i)表示数(i)的最小质因子,依次枚举每个数,若(v_i == 0)(即未被筛),说明其是一个质数

      接着依次枚举小于(v_i)的已经筛出的质数(设为(p)),可知(p)为合数(p*i)的最小质因数((p < v_i))

      注意(p*i)不能超过(n)

    int v[N],p[N],p_cnt;
    void primes(int n) {
    	for(int i = 2;i <= n; ++i) {
    		if(!v[i]) v[i] = i,p[++p_cnt] = i;
    		for(int j = 1;j <= p_cnt; ++j) {
    			if(p[j] > v[i] || p[j]*i > n) break;
    			v[p[j]*i] = p[j];
    		}
    	}
    }
    
  • 相关阅读:
    angular4浏览器兼容问题
    angular4组件生命周期
    angular4路由
    CDH 安装配置指南(Tarball方式)
    nginx-1.14.0安装
    redis-3.0.6安装
    CDH安装kafka
    CDH配置JAVA_HOME
    ntp集群时间同步
    VMware联网
  • 原文地址:https://www.cnblogs.com/mzg1805/p/11556132.html
Copyright © 2011-2022 走看看