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

---》分析:来考虑F(x)为奇数的情况,给据题目中给我们的公式,,如果F(x)为奇数,那么这个多项式里面的任何一项都必须是奇数,可以知道p = 2时,        p^e - 1肯定是奇数,如果p != 2,当且仅当e为偶数的时候,此项为奇数,证明如下:

  原式变形为[ p^(e+1) -p + (p-1) ]/ (p-1) = p*(p^e-1)/(p-1) + 1;

  所以p/(p-1) = 1 ,p^e一定是奇数(因为p是质数,质数肯定是奇数),所以p^e-1为偶数,所以下划线式肯定是奇数,证明成立。

  那么题目中的公式可以写成下面的形式:

  2^k0 * 3^(2*k1) * 5^(2*k2) * ... * pn^(2*kn);下划线式可以表达为num ^ 2;

  又k0>=0, 所以满足条件的解为num^2和2 * num^2;因为满足2的更高次幂也一定是2的倍数,不可重复计算。代码如下:

--》注意:这个题目不可以直接循环做,尽管题目中给的时间较长,但直接暴力仍然会超,这里直接计算,sqrt无法强制转换为LL,但是此题L也够了;

--》感悟:数论的题目特点就是代码超短,但思维量和证明超多的那种……

#include<cstring>
#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
#define L long
int main()
{
int t,ca = ;
long long n;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
L ans = ;
double tmp = n;
ans = L(sqrt(tmp)) + L(sqrt(tmp/));
printf("Case %d: %ld\n",++ca,n-ans);
}
return ;
}

LightOJ 1336 Sigma Function(数论 整数拆分推论)的更多相关文章

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

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

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

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

  3. LightOJ 1336 - Sigma Function

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

  4. 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+ ...

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

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

  6. 1336 - Sigma Function

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

  7. light oj 1336 sigma function

    常用的化简方法(高中就常用了):     p^(e+1)-1/p-1=             [ p^(e+1) -p + (p-1) ]/ (p-1) = p*(p^e-1)/(p-1) + 1  ...

  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. UltraEdit 中的常用正则表达式

    正则表达式 (UltraEdit Syntax):   % 匹配行首 - 表明要搜索的字符串一定在行首.   $ 匹配行尾 - 表明要搜索的字符串一定在行尾   ? 匹配除换行符外的任一单个字符.   ...

  2. 与malloc有关的问题

    nefu 1026 申请动态空间存放字符串,将其排序后输出 http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1026 #in ...

  3. chapter8_2 预编译

    用luac程序可以生成一个预编译文件——二进制文件. 比如: luac -o prog.lc prog.lua --生成了prog.lc二进制文件 Lua解析器可以执行它就像执行普通lua代码一样. ...

  4. 简单学习JavaScript面向对象编程

    JavaScript是一种弱类型语言.有一种原型机制. 1.创建一个空对象:var bill = {}; 给这个对象添加属性和方法: bill.name = "Bill E Goat&quo ...

  5. spring容器启动的加载过程(三)

    第十步: public class XmlBeanDefinitionReader extends AbstractBeanDefinitionReader { /** * Load bean def ...

  6. WimTool(Wim映像处理工具) V1.30.2011.501 免费绿色版

    软件名称: WimTool(Wim映像处理工具) V1.30.2011.501 免费绿色版软件语言: 简体中文授权方式: 免费软件运行环境: Win7 / Vista / Win2003 / WinX ...

  7. Python 学习笔记6

    做人要有目标感! 继续学习Python哦.

  8. 关于css的hack问题

    <!--[if <keywords>? IE <version>?]> HTML代码块 <![endif]--> 取值: <keywords> ...

  9. grub4dos新手指南-2

    Grub4dos 新手指南 一.GRUB4DOS的配置文件Grub4dos 有三个文件,grldr.grldr.mbr和menu.lst,配置文件是menu.lst,和GRUB一样.该文件一般放在和启 ...

  10. tomcat的几种配置方式(常用)

    https://www.baidu.com   url www.baidu.com 主机名 baidu.com 域名 第一种 放在webapp目录下 也可以放在ROOT 根目录下 访问路径 IP:端口 ...