C - Sigma Function LightOJ - 1336 (数论)
一个让人脑洞大开的题。
题目大意比较简单,询问[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 (数论)的更多相关文章
- Sigma Function LightOJ - 1336 (约数和为奇数)
题意: 求1-n中约数和为偶数的数的个数 记住一个定理:...平方数 及其 平方数的2倍 的约数和为奇数 then....减啦 证明: ....我jiao着人家写的很详细,so 看看人家写的吧! 转 ...
- Sigma Function (LightOJ - 1336)【简单数论】【算术基本定理】【思维】
Sigma Function (LightOJ - 1336)[简单数论][算术基本定理][思维] 标签: 入门讲座题解 数论 题目描述 Sigma function is an interestin ...
- LightOJ - 1336 - Sigma Function(质数分解)
链接: https://vjudge.net/problem/LightOJ-1336 题意: Sigma function is an interesting function in Number ...
- LightOJ 13361336 - Sigma Function (找规律 + 唯一分解定理)
http://lightoj.com/volume_showproblem.php?problem=1336 Sigma Function Time Limit:2000MS Memory L ...
- 【LightOJ1336】Sigma Function(数论)
[LightOJ1336]Sigma Function(数论) 题面 Vjudge 求和运算是一种有趣的操作,它来源于古希腊字母σ,现在我们来求一个数字的所有因子之和.例如σ(24)=1+2+3+4+ ...
- 1336 - Sigma Function
1336 - Sigma Function PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB S ...
- LightOJ1336 Sigma Function(约数和为偶数的个数)
Sigma Function Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit ...
- LightOJ1336 Sigma Function —— 质因子分解、约数和为偶数
题目链接:https://vjudge.net/problem/LightOJ-1336 1336 - Sigma Function PDF (English) Statistics Forum ...
- Uva 11395 Sigma Function (因子和)
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=109329#problem/C 题目在文末 题意:1~n (n:1~1012)中,因子 ...
随机推荐
- hdu1224SPFA求最长路加上打印路径
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1224/ 无负环. 代码如下: #include<bits/stdc++.h> using names ...
- BIT-Reverse Pairs
2019-12-17 11:07:02 问题描述: 问题求解: 本题可以看作是逆序数问题的强化版本,需要注意的是num[i] > 2 * num[j],这里有0和负数的情况. public in ...
- 子序列宽度求和 Sum of Subsequence Widths
2019-10-14 17:00:10 问题描述: 问题求解: 如果暴力求解,时间复杂度是exponational的,因为这里是子序列而不是子数组.显然,直接枚举子序列是不太现实的了,那么可以怎么做呢 ...
- JSON字符串带BOM头"ufeff"
调用三方接口返回值JSON字符串带BOM头"\ufeff",JSON解析死活报错. 我是用SpringBoot的RestTemplate调用三方接口的,一开始返回值我是用对象接收返 ...
- Go语言库系列之flag
背景 终端(命令行)操作是程序员的必备技能,但是你知道怎么通过golang制作出如下命令吗? $ flag girl -h Usage of girl: -height int 身高 (default ...
- CVE-2020-7961 Liferay Portal 复现分析
漏洞说明: Liferay是一个开源的Portal(认证)产品,提供对多个独立系统的内容集成,为企业信息.流程等的整合提供了一套完整的解决方案,和其他商业产品相比,Liferay有着很多优良的特性,而 ...
- Java 异常处理与输入输出
一.异常 1.1 package exception; import java.util.Scanner; public class ArrayIndex { public static void m ...
- [一起读源码]走进C#并发队列ConcurrentQueue的内部世界
决定从这篇文章开始,开一个读源码系列,不限制平台语言或工具,任何自己感兴趣的都会写.前几天碰到一个小问题又读了一遍ConcurrentQueue的源码,那就拿C#中比较常用的并发队列Concurren ...
- linux下zip/unzip详解
linux下zip_unzip详解 命令列表:zip -q (quiet) -r (recursive) -0(level0-level9) -e (encrypt) - ...
- Linux基础:Day03
Linux的网络 以太网的发明--PC之间文件共享情况出现 网卡硬件设备 -- MAC地址 一层:物理层 HUB -- 集线器 总线型结构 泛洪 广播域/冲突域 二层: 在早期的网络中,PC互通 ...