zoukankan      html  css  js  c++  java
  • LightOJ1336 Sigma Function

    题意

    求和运算是一种有趣的操作,它来源于古希腊字母σ,现在我们来求一个数字的所有因子之和。例如σ(24)=1+2+3+4+6+8+12+24=60.对于小的数字求和是非常的简单,但是对于大数字求和就比较困难了。现在给你一个n,你需要求出有多少个数字的σ是偶数。
    注:一个数字的σ指这个数的所有因子之和

    Input

    输入包含T(T<=100)组数据,每一组只有一个数字n(1<=n<=10^12)

    Output

    输出一个数字,为所求答案

    Solution

    转化思维,求一下是奇数的数
    推一下发现,凡是奇数的完全平方数以及它的2^k幂都是
    也就是完全平方数以及它的两倍的数都是

    # include <bits/stdc++.h>
    # define RG register
    # define IL inline
    # define Fill(a, b) memset(a, b, sizeof(a))
    using namespace std;
    typedef long long ll;
    const int _(1e5 + 10), __(1e6 + 10);
    
    IL ll Read(){
    	char c = '%'; ll x = 0, z = 1;
    	for(; c > '9' || c < '0'; c = getchar()) if(c == '-') z = -1;
    	for(; c >= '0' && c <= '9'; c = getchar()) x = x * 10 + c - '0';
    	return x * z;
    }
    
    ll n, ans;
    
    int main(RG int argc, RG char *argv[]){
    	for(RG int T = Read(), i = 1; i <= T; ++i){
    		n = Read(); ans = (ll)sqrt(1.0 * n) + (ll)sqrt(0.5 * n);
    		printf("Case %d: %lld
    ", i, n - ans);
    	}
    	return 0;
    }
    
    
    
    
  • 相关阅读:
    some math words
    图论中匹配问题的三种算法
    如何查看静态库和动态库是32位还是64位
    C/C++语言的版本, Visual Studio版本
    codeblocks
    文件类型
    上海职称评定
    微信登录
    手机归属地查询
    创建AOP静态代理(上篇)
  • 原文地址:https://www.cnblogs.com/cjoieryl/p/8250173.html
Copyright © 2011-2022 走看看