一个让人脑洞大开的题。

题目大意比较简单,询问[1,n]有多少个数其因子和为偶数。

因子分解定理中求因子和的公式是

f(n)=(1+p1+p1^2+p1^3+...+p1^a1)(1+p2+p2^2+...+p2^a2)....

如果让因子和为偶数,首先我们看一下两个数相乘怎么才能得到偶数:

1 even*even=even

2 even*odd  =even

3 odd*even  =even。

会有三种情况,但是如果要得到奇数只需要odd*odd=odd,所以我们不妨求因子和为奇数的情况。

即让(1+pi+pi^2+...+pi^ai)为奇数,也就是让(pi+pi^2+...+pi^ai)为偶数。这里的pi是素数,在素数中,只有2是偶数,其余全部是奇数。

首先假设一个数x是奇数,也质因子中就是不含有2。要让(1+pi+pi^2+...+pi^ai)全为奇数,只需要让(pi+pi^2+...+pi^ai)为偶数,只要偶数个奇数相加才会出现奇数所以我们的ai应该是偶数才可以。又因为x=p1^a1*p2^a2*...=(p1^(a1/2)*p2^(a2/2)...)^2,而p1^(a1/2)*p2^(a2/2)...又可以构成一个新的数c,所以x=c^2,所以x应该是一个平方数。

然后如果x是个偶数,也几就是质因子中含有2。2是一个偶数,应该让它出现奇数次(假设为d次)才行,

d=d1+1,那么d1一定是个偶数,所以x=2^(d1+1)*(p1^(a1/2)*p2^(a2/2)...)^2=2*(2^(d1/2)*p1^(a1/2)*p2^(a2/2)...)^2。所以x=2*(c^2)。

所以我们只要计算这俩x的个数就行了。。。。

code:

#include<bits/stdc++.h>
using namespace std; int main(){
int t;
cin>>t;
for(long long i=;i<=t;i++){
long long n;
cin>>n;
long long sum=;
sum+=sqrt(n);
sum+=sqrt(n/(long long ));
printf("Case %d: %lld\n",i,n-sum);
}
return ;
}

C - Sigma Function LightOJ - 1336 (数论)的更多相关文章

  1. Sigma Function LightOJ - 1336 (约数和为奇数)

    题意: 求1-n中约数和为偶数的数的个数 记住一个定理:...平方数 及其 平方数的2倍 的约数和为奇数  then....减啦 证明: ....我jiao着人家写的很详细,so 看看人家写的吧! 转 ...

  2. Sigma Function (LightOJ - 1336)【简单数论】【算术基本定理】【思维】

    Sigma Function (LightOJ - 1336)[简单数论][算术基本定理][思维] 标签: 入门讲座题解 数论 题目描述 Sigma function is an interestin ...

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

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

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

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

  5. 【LightOJ1336】Sigma Function(数论)

    [LightOJ1336]Sigma Function(数论) 题面 Vjudge 求和运算是一种有趣的操作,它来源于古希腊字母σ,现在我们来求一个数字的所有因子之和.例如σ(24)=1+2+3+4+ ...

  6. 1336 - Sigma Function

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

  7. LightOJ1336 Sigma Function(约数和为偶数的个数)

    Sigma Function Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit ...

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

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

  9. Uva 11395 Sigma Function (因子和)

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=109329#problem/C   题目在文末 题意:1~n (n:1~1012)中,因子 ...

随机推荐

  1. hdu1224SPFA求最长路加上打印路径

    题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1224/ 无负环. 代码如下: #include<bits/stdc++.h> using names ...

  2. BIT-Reverse Pairs

    2019-12-17 11:07:02 问题描述: 问题求解: 本题可以看作是逆序数问题的强化版本,需要注意的是num[i] > 2 * num[j],这里有0和负数的情况. public in ...

  3. 子序列宽度求和 Sum of Subsequence Widths

    2019-10-14 17:00:10 问题描述: 问题求解: 如果暴力求解,时间复杂度是exponational的,因为这里是子序列而不是子数组.显然,直接枚举子序列是不太现实的了,那么可以怎么做呢 ...

  4. JSON字符串带BOM头"ufeff"

    调用三方接口返回值JSON字符串带BOM头"\ufeff",JSON解析死活报错. 我是用SpringBoot的RestTemplate调用三方接口的,一开始返回值我是用对象接收返 ...

  5. Go语言库系列之flag

    背景 终端(命令行)操作是程序员的必备技能,但是你知道怎么通过golang制作出如下命令吗? $ flag girl -h Usage of girl: -height int 身高 (default ...

  6. CVE-2020-7961 Liferay Portal 复现分析

    漏洞说明: Liferay是一个开源的Portal(认证)产品,提供对多个独立系统的内容集成,为企业信息.流程等的整合提供了一套完整的解决方案,和其他商业产品相比,Liferay有着很多优良的特性,而 ...

  7. Java 异常处理与输入输出

    一.异常 1.1 package exception; import java.util.Scanner; public class ArrayIndex { public static void m ...

  8. [一起读源码]走进C#并发队列ConcurrentQueue的内部世界

    决定从这篇文章开始,开一个读源码系列,不限制平台语言或工具,任何自己感兴趣的都会写.前几天碰到一个小问题又读了一遍ConcurrentQueue的源码,那就拿C#中比较常用的并发队列Concurren ...

  9. linux下zip/unzip详解

    linux下zip_unzip详解 命令列表:zip    -q (quiet)    -r (recursive)    -0(level0-level9)    -e (encrypt)    - ...

  10. Linux基础:Day03

    Linux的网络 以太网的发明--PC之间文件共享情况出现 网卡硬件设备 -- MAC地址  一层:物理层 HUB -- 集线器 总线型结构 泛洪  广播域/冲突域  二层: 在早期的网络中,PC互通 ...