D - Sigma Function 1~n内有多少个约数和为偶数
/**
题目:D - Sigma Function
链接:https://vjudge.net/contest/154246#problem/D
题意:求1~n内约数和为偶数的数的个数。
思路:一个数的约数和为那个数的每个素因子的等比和相乘。如题目所给公式就是等比和化简之后的式子。
那么要判断一个数约数和是否为偶数,可以通过观察它的各个素因子等比和来判断。如果存在某个素因子的等比和为偶数。
那么这个约数和肯定是偶数。否则为奇数。
素因子只有2是偶数,其他都是奇素数。 含素因子2的等比和一定为奇数。其他都是奇素数,只有奇数次方,等比和才是偶数。(未化简之前的式子更好用来判断奇偶)
为了更好处理,求所有奇数约数和的个数。然后总的减去即可得偶数约数和的个数。
奇数约数和:
1,如果素因子不含2,那么肯定是一个平方数。各个素因子次方为偶数。
2,如果素因子含2,那么仍然是与2的若干次方相乘的那个数必须是平方数,他们的乘积是奇数约数和。 于是:假定这里的平方数不再包含2这个素因子。
2^0 * 平方数 为奇数约数和
2^1 * 平方数
2^2 * 平方数
2^3 * 平方数
.
.
2^e * 平方数 观察发现。2^2 * 平方数其实已经包含在2^0 * 平方数里面了;
2^3 * 平方数也包含在2^1 *平方数里面了。实质上把2^2转移到那个平方数里面了。 因此只要考虑 一个平方数,以及2*一个平方数 这两种情况都是奇数约数和,且不会重复因为一个2*平方数结果肯定不是平方数。 */
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6+;
ll n;
int main()
{
int T, cas=;
cin>>T;
while(T--)
{
scanf("%lld",&n);
ll ans = (ll)sqrt(n/)+(ll)sqrt(n);///开根号可能有浮点数误差,有时候要特别处理。
printf("Case %d: %lld\n",cas++,n-ans);
}
return ;
}
D - Sigma Function 1~n内有多少个约数和为偶数的更多相关文章
- 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)中,因子 ...
- LightOJ1336 Sigma Function(约数和为偶数的个数)
Sigma Function Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit ...
- 【LightOJ1336】Sigma Function(数论)
[LightOJ1336]Sigma Function(数论) 题面 Vjudge 求和运算是一种有趣的操作,它来源于古希腊字母σ,现在我们来求一个数字的所有因子之和.例如σ(24)=1+2+3+4+ ...
- Sigma Function (LightOJ - 1336)【简单数论】【算术基本定理】【思维】
Sigma Function (LightOJ - 1336)[简单数论][算术基本定理][思维] 标签: 入门讲座题解 数论 题目描述 Sigma function is an interestin ...
- 1336 - Sigma Function
1336 - Sigma Function PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB S ...
- LightOJ 13361336 - Sigma Function (找规律 + 唯一分解定理)
http://lightoj.com/volume_showproblem.php?problem=1336 Sigma Function Time Limit:2000MS Memory L ...
- B - 低阶入门膜法 - D-query (查询区间内有多少不同的数)
题目链接:https://cn.vjudge.net/contest/284294#problem/B 题目大意:查询区间内有多少个不相同的数. 具体思路:主席树的做法,主席树的基础做法是查询区间第k ...
- Sigma Function (平方数与平方数*2的约数和是奇数)
Sigma Function https://vjudge.net/contest/288520#problem/D Sigma function is an interesting function ...
随机推荐
- Flex页面跳转的五种实现方式
Flex页面跳转有很多值得学习的地方,本文向大家介绍一下Flex页面跳转的几种方式,主要包括五种方式,这里为大家一一介绍. AD: 在学习Flex的过程中,你可能会遇到Flex页面跳转的概念,这里 ...
- WebService authentication
http://blog.csdn.net/largestone_187/article/details/5734632 通过SoapHeader对用户口令进行验证,只有授权的用户才可以使用接口.确保了 ...
- Editplus格式化代码
Editplus格式化代码插件(CSS,JS)今天在BlueIdea看到有人发了一篇名 为“让Editplus自动格式化css和js”的文章,看完后觉得写的很好,我也突然来了灵感,为什么不把前端开发常 ...
- Android Studio生成APK自动追加版本号、自定义apk名称、指定签名证书文件
你也可以查看我的其他同类文章,也会让你有一定的收货! 生成APK自动追加版本号 可自动区分debug和release,并追加版本号: 打开 build.gradle 在 android 节点中插入下面 ...
- windows下硬盘的逻辑结构
共有五部分组成: MBR:主引导分区(硬盘启动记录) DBR:DOS启动记录 FAT: 文件分配表 DIR:根目录区 DATA:数据区
- shell--管道命令(pipe)
管道命令使用的是“|”这个界定符号 管道命令“|”仅能处理经由前面一个命令传来的正确信息,也就是standard output的信息,对于standard error并没有直接处理的能力 每个管道后面 ...
- 算法导论-求x的n次方
目录 1.分治求x的n次方思路 2.c++代码实现 内容 1.分治求x的n次方思路T(n)=Θ(lgn) 为了计算乘方数a^n,传统的做法(所谓的Naive algorithm)就是循环相乘n次,算法 ...
- Linux下免安装mysql
我是使用免安装的包mysql-5.6.30-linux2.6-x86_64.tar.gz(在http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6 ...
- [转载]Java 反射机制(包括组成、结构、示例说明等内容)
FROM:http://www.cnblogs.com/skywang12345/p/3345205.html 第1部分 Java 反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们 ...
- [转] Google 开源 iOS 应用测试工具:EarlGrey
Google 开源 iOS 应用测试工具:EarlGrey oschina 发布于: 2016年02月18日 (3评) 分享到: 收藏 +53 3月19日,深圳源创会火热报名中,go>&g ...