zoukankan      html  css  js  c++  java
  • 因子和&&因子数

    给定一数n,求n的因子数目和因子之和

    上述求因子和式子等于

    ∏{(piei+1 - 1) / (pi - 1)}  (∏就是连乘)

    模板:

     1 const int maxn = 1000000+10;
     2 int prime[maxn];
     3 bool is_prime[maxn];
     4 int sieve(int n)//返回n以内素数的个数
     5 {
     6     int p = 0;
     7     for(int i = 0; i <= n; i++)is_prime[i] = 1;
     8     is_prime[0] = is_prime[1] = 0;
     9     for(ll i = 2; i <= n; i++)
    10     {
    11         if(is_prime[i])
    12         {
    13             prime[p++] = i;
    14             for(ll j = i * i; j <= n; j += i)is_prime[j] = 0;//这里涉及i*i,必须使用long long
    15         }
    16     }
    17     return p;
    18 }
    19 
    20 ll Divisors_num(ll n, int tot)//素数总数
    21 {
    22     ll ans = 1;
    23     for(int i = 0; i < tot && prime[i] * prime[i] <= n; i++)
    24     {
    25         if(n % prime[i] == 0)
    26         {
    27             int cnt = 0;
    28             while(n % prime[i] == 0)
    29             {
    30                 cnt++;
    31                 n /= prime[i];
    32             }
    33             ans *= (cnt + 1);
    34         }
    35     }
    36     if(n > 1)ans *= 2;
    37     return ans;
    38 }
    39 ll pow(ll a, ll b)
    40 {
    41     ll ans = 1;
    42     while(b)
    43     {
    44         if(b & 1)ans = ans * a;
    45         a *= a;
    46         b /= 2;
    47     }
    48     return ans;
    49 }
    50 ll Divisors_sum(ll n, int tot)
    51 {
    52     ll ans = 1;
    53     for(int i = 0; i < tot && prime[i] * prime[i] <= n; i++)
    54     {
    55         if(n % prime[i] == 0)
    56         {
    57             int cnt = 0;
    58             while(n % prime[i] == 0)
    59             {
    60                 cnt++;
    61                 n /= prime[i];
    62             }
    63             ans = (pow(prime[i], cnt + 1) - 1) / (prime[i] - 1) * ans;
    64         }
    65     }
    66     if(n > 1)ans *= (n + 1);
    67     return ans;
    68 }
  • 相关阅读:
    vue—子调父 $emit (把子组件的数据传给父组件)
    解决 Error: EBUSY: resource busy or locked, rmdir 'E:/...'问题
    php中session原理及安全性问题
    MySQL函数大全及用法示例
    php基础语法
    常用sql语句
    php表单传值--GET和POST
    jQuery插件的使用方法
    $.ajax()方法详解
    php文件上传
  • 原文地址:https://www.cnblogs.com/fzl194/p/9017504.html
Copyright © 2011-2022 走看看