zoukankan      html  css  js  c++  java
  • Sigma Function 数学 因子求和

    Sigma function is an interesting function in Number Theory. It is denoted by the Greek letter Sigma (σ). This function actually denotes the sum of all divisors of a number. For example σ(24) = 1+2+3+4+6+8+12+24=60. Sigma of small numbers is easy to find but for large numbers it is very difficult to find in a straight forward way. But mathematicians have discovered a formula to find sigma. If the prime power decomposition of an integer is

    Then we can write,

    For some n the value of σ(n) is odd and for others it is even. Given a value n, you will have to find how many integers from 1 to n have even value of σ.

    Input

    Input starts with an integer T (≤ 100), denoting the number of test cases.

    Each case starts with a line containing an integer n (1 ≤ n ≤ 1012).

    Output

    For each case, print the case number and the result.

    Sample Input

    4

    3

    10

    100

    1000

    Sample Output

    Case 1: 1

    Case 2: 5

    Case 3: 83

    Case 4: 947

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<sstream>
    #include<algorithm>
    #include<queue>
    #include<vector>
    #include<cmath>
    #include<map>
    #include<stack>
    #include<set>
    #include<fstream>
    #include<memory>
    #include<list>
    #include<string>
    using namespace std;
    typedef long long LL;
    typedef unsigned long long ULL;
    #define MAXN  1000010
    #define LLL 1000000000
    #define INF 1000000009
    /*
    给一个公式,将一个数表示为所有素因子等比数列 求前e个 的乘积
    求小于n的数中为奇数的个数
    数据很大不能打表。。
    当p为偶数 ,p的次方为偶数,加上p的0次方 最后得出奇数不成立
    当P为奇数,P的次方为奇数,要有偶数个奇数相加才能得出偶数,要求e为奇数
    当所有的 p和e中总是存在任何一个不为奇数的时候,结果为奇数
    e为偶数 平方数  后面乘某些数 后面的数字是2的几次方的时候仍然成立 (2是唯一的素偶数)
    所有个数为 平方数||2*平方数
    */
    int main()
    {
        LL T,n;
        scanf("%lld", &T);
        for(LL cas=1;cas<=T;cas++)
        {
            scanf("%lld", &n);
            LL t1 = sqrt(n*1.0);
            LL t2 = sqrt(n*0.5);
            printf("Case %lld: %lld
    ",cas, n - t1 - t2);
        }
        return 0;
    }
  • 相关阅读:
    ssh login nova vm
    Vxlan 原理
    nova的wsgi介绍【WIP】
    python entry points 例子
    libvirt python binding 变成了一个新项目
    libvirt python binding 变成了一个新项目了。
    ubuntu15.04下编译 libvirt
    qemu 调试(二)
    微信公众平台开发接口PHP SDK完整版
    php中单例模式的解析说明
  • 原文地址:https://www.cnblogs.com/joeylee97/p/6829730.html
Copyright © 2011-2022 走看看