LightOJ 1336 Sigma Function(数论,sigma函数,唯一分解定理,奇偶性)

题意:统计1~n以内因子和为偶数的数有多少个,1<=n<=1e12。
题目给出了由唯一分解定理推导出的n的 所有因子和 公式,称为sigma函数。
n质因子分解后:
在这里插入图片描述
那么sigma函数可表示为:
在这里插入图片描述
以上为题目。
其实sigma函数的另一个形式之前在唯一分解定理时学习过,如下:
在这里插入图片描述
从这两个式子都可以看出,如果N的sigma函数的值为偶数,只需证明这个积性函数的其中至少一项为偶数即可。

要使(1+p1+p12 +……+p1a1 )的值为偶,
设其值为偶,
因为1是奇数,则p1+p12 +……+p1a1 值应为奇数,
由于p的幂不改变p的奇偶性,且由奇+奇=偶,偶+奇=奇可知奇数个奇数相加为奇数,偶数个奇数相加为偶数,
可得p1必为奇,a1必为奇。

然后我们发现思路到这里断掉了。。
那不如从反方向思考。既然sigma函数值为偶<=>存在p1和a1均为奇数,那么sigma函数值为奇<=>对所有的pi与ai,一定有 pi为奇&&ai为偶,或pi为偶&&ai为偶,或pi为偶&&ai为奇。
我们知道质数中只有2是偶数,
所以随机组合满足这三个条件的ai pi值,会发现它们的积可以表示为平方值,或平方值的2倍。
于是我们计算n以内的平方数和2倍平方数的个数,再用n减去,即可得满足sigma函数值为偶的数的个数了。

csdn是要逼着我学markdown吗!!!

猜你喜欢

转载自blog.csdn.net/qq_42021845/article/details/104259415