题目链接:https://cn.vjudge.net/problem/LightOJ-1336

题意

给出一个区间[1, n],求区间内所有数中因数之和为偶数的数目

思路

第二次写这个题

首先想到唯一分解定理

\[s=p_1^{n_1}*p_2^{n_2}...p_m^{n_m}
\]

\[ans=\prod \sum p_i^j
\]

其中ans为所有因子之和

明显的,若ans为偶数,则所有 $ \sum p_i^j \(为偶数
又\) \sum_{1 \to j} p_i^j $应为奇数(上式减1),则所有p为奇数且n为奇数

所以这里可以对一个数进行判断了,然而maxn=1e12,一个一个算绝对超时

这时看了看上次代码,发现了个sqrt()

立马明白sqrt(n)的另一个意思:1~n之间有几个平方数,平方数对应着n全为偶数

于是公式就直接出现

ans=n-sqrt(n)-sqrt(n/2)

提交过程

WA 忘了long long 数据范围
AC

代码

#include <cstdio>
#include <cmath>
const double eps=1e-8; int main(void){
int T, kase=0;
long long n; scanf("%d", &T);
while (T--){
scanf("%lld", &n);
// sqrt(n) == the count of numbers which can be sqrted with 2^2k from 1 to n.
// sqrt(n) == the count of numbers which can be sqrted with 2^2k+1 from 1 to n.
n-=(long long)(sqrt(n)+eps)+(long long)(sqrt(n/2)+eps);
printf("Case %d: %lld\n", ++kase, n);
} return 0;
}
Time Memory Length Lang Submitted
None 1100kB 435 C++2018-07-30 17:13:41

LightOJ-1336 Sigma Function 唯一分解定理 巧妙使用sqrt()等算数目的更多相关文章

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

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

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

  3. LightOJ 1336 Sigma Function(数论 整数拆分推论)

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

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

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

  5. LightOJ 1336 - Sigma Function

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

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

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

  7. 1336 - Sigma Function

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

  8. 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  ...

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

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

随机推荐

  1. cache(缓存)的作用

    cache的作用: 连接文件.内存与应用,为信息流在三者之间流动提供通道: 存储管理:对外与对内: 存取效率: 多线程: 一次存储:分批存储? 系统的缓存控制机制(虚拟内存)使用分段分页与命中机制. ...

  2. 在Windows环境下使用短信猫收发短信的简单配置:

    Windows简单配置: 1.插入usb接口,打开电脑的设备管理器,装驱动后,查看端口下设备的com(串口)是多少,接下来就是配置短信猫的必须参数: 如果短信猫是COM(串口)口的,一般端口是COM1 ...

  3. easyUI datagrid的合并的js封装

    $.extend($.fn.datagrid.methods, { autoMergeCells : function (jq, fields) { return jq.each(function ( ...

  4. vue项目 预览照片的插件 v-viewer

    查看图片主要使用的旋转.翻转.缩放.上下切换.键盘操作等功能都有. 1.首先是安装 npm install v-viewer --save 2.安装完在main.js里面引用(还要记得引用它的css样 ...

  5. Vue学习之路第五篇:v-bind

    v-bind:是Vue提供的用于绑定html属性的指令. html中常见的属性有:id.class.src.title.style等,他们都是以 名称/值对 的形式出现,如:id="firs ...

  6. laravel 模板

    1.{!! $data !!}  $data不会被转义

  7. freeswitch mod_xml_curl

    (猜想)调用htttp 进行动态用户注册 流程 用户通过客户端进行注册 填写sip账号密码 进入fs, fs发送http请求配置得地址,request中带着user,key 一些参数, 服务器返回xm ...

  8. 关于C++的一些函数的使用方法

    关于C++的一些函数的使用方法: http://www.shouce.ren/api/c/index.html

  9. 配置 Phpstorm + Xdebug + xampp

    配置 Phpstorm + Xdebug + xampp 1 Xampp 安装好xampp,配置 httpd.conf 在xampp面板中 单击后会出现一些配置文件,httpd.conf位于第一个 将 ...

  10. WIN7使用VisualSVN建立SVN服务器

    使用SVN开发十分的方便,这样就不用每次都拷贝粘贴来备份了,网上看到一篇给自己的windows电脑安装SVN服务器的使用非常方便. 1.下载安装文件(服务器端和客户端) 服务器端采用VisualSVN ...