zoukankan      html  css  js  c++  java
  • 简单的数论函数模板

    $ auleft( n ight) = (n_1+1)(n_2+1)cdot cdot cdot (n_k+1)$

    typedef unsigned long long ll;
    ll tau(ll n){//除数函数
    	ll res=1,t=2,p;
    	while(n>t){
    		p=1;
    		while(!(n%t)){
    			n/=t;
    			++p;
    		}
    		res*=p;
    		++t;
    	}
    	if(n!=1) res<<=1;
    	return res;
    }
    
    //javascript 移植
    function tau(n){
      var res=1;var t=2;var p;
      while(n>t){
        p=1;
        while(!(n%t)){
          n/=t;
          ++p;
        }
        res*=p;
        ++t;
      }
      if(n!=1) res<<=1;
      return res;
    }
    

    $sigma(n)$

    除数和函数

    typedef unsigned long long ll;
    ll sigma(ll n){
    	ll res=1,t=2,tp;
    	while(n>t){
    		tp=t;
    		while(!(n%t)){
    			n/=t;
    			tp*=t;
    		}
    		res*=(tp-1)/(t-1);
    		++t;
    	}
    	if(n!=1) res*=n+1;
    	return res;
    }
    
    function sigma(n){
      var res=1;var t=2;var tp;
      while(n>t){
        tp=t;
        while(!(n%t)){
          n/=t;
          tp*=t;
        }
        res*=(tp-1)/(t-1);
        ++t;
      }
      if(n!=1) res*=n+1;
      return res;
    }
    

     分解质因数(javascript,O(2^(n/2)),同理上面的可以这样优化)

    function factor(n){
      var res={};var t=2;var p;
      while(n>=t*t){
        p=0;
        while(!(n%t)){
          n/=t;
          ++p;
        }
        if(p) res[t]=p;
        ++t;
      }
      if(n!=1) res[n]=1;
      return res;
    }
    

      

  • 相关阅读:
    jQuery实现动态搜索显示功能
    面试
    Struts1和Struts2的区别和对比(完整版)
    JAVA调用增删改的存储过程
    Spring MVC入门
    jQuery Ajax通用js封装
    js ==与===区别
    shell脚本awk
    C++对象模型初窥
    再见,2021
  • 原文地址:https://www.cnblogs.com/tmzbot/p/4147393.html
Copyright © 2011-2022 走看看