常用的化简方法(高中就常用了):     p^(e+1)-1/p-1=             [ p^(e+1) -p + (p-1) ]/ (p-1) = p*(p^e-1)/(p-1) + 1   (也可以直接分解p^e-1)

常用的思路:反面验证  比如本题,求偶数(试探后发现不太好求),则推出奇数条件

再看本题。要想让σ(n)为偶数,只要有一项为偶数即可,

化简变为,观察这个式子,pi都是素数,除2以外都是奇数,所以式子奇偶决定于ei,若ei为奇数,就相当于奇数个奇数(若pi不是2,那么肯定是奇数)相加,再加上1,偶数,反之,若ei为偶数,就是奇数。如果pi刚好是2,是奇数

得出结论:对于n,若将n进行唯一分解之后,如果存在任何一个 pi != 2 且 ei ( 1 <= i <= k )为奇数则 σ(n) 为偶数。

现在需要求的是计算1-n之间能让σ(k)为偶数的k的个数。有些复杂,所以考虑这个问题的反面,求1-n之间能让σ(k)为奇数的k的个数

若σ(n)为奇数,则每一项都必须为奇数,意味着每一项约分之后的都必须为奇数,也就是说每一项的ei都必须是偶数,也就是说n必须为平方数。但是前面证明过当pi为2时,无论ei是什么,这一项都是奇数,然而这些平方数乘以2之后,其σ仍是奇数(如果再乘以2,就是另一个平方数了,所以只需要考虑乘一个2),仍然符合条件。

所以n为平方数,或为平方数的2倍,那么σ(n)为奇数。而小于n的平方数为sqrt(n)个,这些平方数的2倍的个数是sqrt(n/2)。

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
typedef long long ll;
int main()
{
int T;
scanf("%d", &T);
for(int kase = ; kase <= T; kase++)
{
ll n, sum;
scanf("%lld", &n);
sum = n;
sum -= (int)sqrt(n);
sum -= (int)sqrt(n/);
printf("Case %d: %lld\n", kase, sum);
}
return ;
}

light oj 1336 sigma function的更多相关文章

  1. 1336 - Sigma Function

    1336 - Sigma Function   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB S ...

  2. LightOJ - 1336 - Sigma Function(质数分解)

    链接: https://vjudge.net/problem/LightOJ-1336 题意: Sigma function is an interesting function in Number ...

  3. LightOJ 1336 Sigma Function 算数基本定理

    题目大意:f(n)为n的因子和,给出 n 求 1~n 中f(n)为偶数的个数. 题目思路:算数基本定理: n=p1^e1*p2^e1 …… pn^en (p为素数): f(n)=(1+p1+p1^2+ ...

  4. LightOJ 1336 Sigma Function(数论 整数拆分推论)

    --->题意:给一个函数的定义,F(n)代表n的所有约数之和,并且给出了整数拆分公式以及F(n)的计算方法,对于一个给出的N让我们求1 - N之间有多少个数满足F(x)为偶数的情况,输出这个数. ...

  5. LightOJ - 1336 Sigma Function(约数和+整数拆分)

    题干中给出函数公式: 其中pi为n的每个素因数,ei为其个数.设该函数为F(x),其意义为x的约数之和.问在1-n中有多少x,令F(x)为偶数. 分析:设f(p)为(p^(e+1)-1)/(p-1). ...

  6. LightOJ 1336 - Sigma Function

    原题链接 基础数论中很经典的一道题 题意 给出了σ(n)的计算公式,让你找出整数1-n中有多少对应σ(n)的值是偶数. 思路 观察σ(n)的公式发现,每一个乘项都是 (piei+1 - 1) / (p ...

  7. LightOJ 13361336 - Sigma Function (找规律 + 唯一分解定理)

    http://lightoj.com/volume_showproblem.php?problem=1336 Sigma Function Time Limit:2000MS     Memory L ...

  8. LightOJ1336 Sigma Function —— 质因子分解、约数和为偶数

    题目链接:https://vjudge.net/problem/LightOJ-1336 1336 - Sigma Function    PDF (English) Statistics Forum ...

  9. 1336 - Sigma Functio

    1336 - Sigma Function Sigma function is an interesting function in Number Theory. It is denoted by t ...

随机推荐

  1. servlet中的servletURL,servletURI和servletPath

    String    servletURL=request.getservletURL(); url:站点名+当前web应用名+(目录名)+页面名 String    servletURI=reques ...

  2. Laravel中常见的错误与解决方法小结

    一.报错: 「Can't swap PDO instance while within transaction」 通过查询 Laravel 源代码,可以确认异常是在 setPdo 方法中抛出的: ? ...

  3. A - Two Substrings

    Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Description You ar ...

  4. WebService之第一天

    1. 定义:webService是一个远程调用技术 远程:相对于本地,不是当前应用服务的.调用:数据交互. 1.1.  业务需求的问题 1.自己想要,但没有

  5. 第一篇 .NET高级技术之索引器

    基础知识补充 索引 器 没有名字 ,索引器的内部本质 (ILSpy的IL模式下看)类型 this[参数]{get;set;} 可以是只读或者只写(在get或者set前加上private) 字符串是只读 ...

  6. 运行scrapyd报错

    转自:    https://blog.csdn.net/qq_29719097/article/details/89431234 web.Server Traceback (most recent ...

  7. 【Nginx】解决Post请求变Get的问题

    默认情况下Nginx会把post请求做一次重定向操作,然后后端收到的就成了Get请求,还会导致一些参数的遗漏. 日志如下: 172.16.1.108 - - [11/Jan/2019:18:27:09 ...

  8. iOS UITextView自适应高度UITextContainerView抖动问题

    在打造一个类似于微信朋友圈评论输入框的时候,需要动态调整输入框的高度, 但是,在调整了UITextView的高度之后,继续输入会导致内容(UITextContainerView里的文字)抖动. scr ...

  9. 题解报告:poj 1738 An old Stone Game(区间dp)

    Description There is an old stone game.At the beginning of the game the player picks n(1<=n<=5 ...

  10. 503 Next Greater Element II 下一个更大元素 II

    给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它 ...