zoukankan      html  css  js  c++  java
  • 因子

    1.求一个数的因子数

    int count(int n)  //求n的因子数 
    {
        int num = 1;
        for(int i = 2; i * i <= n; i ++)
        {
            if(n % i == 0)
            {
                int p = 0;
                while(n % i == 0)
                {
                    n /= i;
                    p ++;
                }
                num *= p + 1;
            }
        }
        if(n > 1)  //最后不是1的话 也算一个因子 
            num *= 2;
        return num;
    }

     2.求1~MAXN范围内各个数的因子和

     1 void get_divisorsum()
     2 {
     3     mem(sum, 0);
     4     for(int i = 1; i * i <= MAXN; i ++)
     5     {
     6         for(int j = i; i * j <= MAXN; j ++) //注意这里是 i * j 
     7         {
     8             sum[i * j] += i + j;
     9             if(i == j)
    10                 sum[i * j] -= i;   //例如 2 * 2 = 4, 2对于4而言只出现了一次,避免重复
    11         }
    12     }
    13 }
  • 相关阅读:
    BZOJ 2002 [Hnoi2010]Bounce 弹飞绵羊 ——Link-Cut Tree
    BZOJ 2049 [Sdoi2008]Cave 洞穴勘测 ——Link-Cut Tree
    hdu
    hdu
    hdu
    hdu
    hdu
    hdu
    hdu
    hdu
  • 原文地址:https://www.cnblogs.com/yuanweidao/p/11741610.html
Copyright © 2011-2022 走看看