题意:定义SOD(n)=n除去1和自身的所有因数的和,CSOD(n)为ΣSOD(i),1<=i<=n。T (≤ 1000)组数据,求CSOD(n),(0 ≤ n ≤ 2 * 109)

对于不同的数m,m=a*b,a<=b;枚举a,判断不大于n的中有哪些可以写成m=a*b的,把a和b加到答案上。复杂度是O(√n)

如何维护答案呢?

举例子,作为a出现的3有多少次呢?是n/3 * 3吗?并不是。要注意到我们要求a<=b,那么从m=9开始,3才会作为a出现,而3,6中的因数3并不作为a对答案贡献。所以ans += (n / i - i + 1) * i;

a为一个数时,对应的b成等差数列,最大值是n / i,最小值是a+1,(注意m=a*a时,a只能算一次贡献, 所以这里不是a)

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 #include <cmath>
 5 #define INF 0x3f3f3f3f
 6 using namespace std;
 7 typedef long long LL;
 8
 9 int T;
10 LL N;
11
12 int main() {
13     scanf("%d", &T);
14     for (int t = 1; t <= T; t++) {
15         LL ans = 0;
16         scanf("%lld", &N);
17         LL tmp = sqrt(N);
18         for (LL i = 2; i <= tmp; i++) {
19             ans += (N / i - i + 1) * i;
20             LL down = i + 1, up = N / i;
21             //if (down > up) continue; 因为down > up的情况只会出现于n可表示为n=x *x 的情况,此时down = up + 1。下方右式恰好为0
22             ans += (up + down) * (up - down + 1) / 2;
23         }
24         printf("Case %d: %lld\n", t, ans);
25     }
26     return 0;
27 }

转载于:https://www.cnblogs.com/xFANx/p/7529281.html

LightOJ - 1098 A New Function相关推荐

  1. lightoj 1098 A New Function 约数之和(一道奇怪的数论) 整除分块优化

    文章目录 题目如下: 思考人生: 题目如下: lightoj 1098 A New Function 求1-n所有数的所有约数之和(不包括1和它本身).n<=2e9. 思考人生: 首先考虑打表找 ...

  2. lightoj刷题日记

    开始板刷lightoj,每天题量>=1: 题目的类型会在这边说明,具体见分页博客: ----------------- 必须要update了... so...板刷第二页搞呀--2017/4/17 ...

  3. [kuangbin]各种各样的题单

    [kuangbin]各种各样的题单 专题1 简单搜索 POJ 1321 POJ 2251 POJ 3278 POJ 3279 POJ 1426 POJ 3126 POJ 3087 POJ 3414 F ...

  4. 分享一个文件上传工具类

    文件上传状态枚举类: View Code 1 package com.hoo.enums; 2 3 4 5 /** 6 7 * <b>function:</b> 文件上传状态 ...

  5. 杜教筛 (包括线筛) 莫比乌斯函数前缀和 欧拉函数前缀和 因数和函数前缀和 因子个数前缀和 ( 分析 )...

    对于莫比乌斯函数 和 欧拉函数  小于 1e8差不多都可线筛    1e12以内  杜教筛 代码针对洛古  p4213  n<=(1<<31)-1  杜教筛 #include< ...

  6. Sigma Function LightOJ - 1336[约数和定理]

    题目大意:求1到n之间的数因子和是偶数有几个 解题思路:对于任意一个xxx,都有x=p1a1∗p2a2∗p3a3...∗pxas,x的所有约数之和就是sum=(1+p11+p12+..p1a1)∗(1 ...

  7. LightOJ 1336 Sigma Function

    题意: 每个数字都是由质因数乘积组成: 于是这个数的所有因子之和就是: 求小于等于n的数中所有质因子之和是偶数的数的个数. 思路: 如上式,求所有质因子之和就是每个质因子(p^0+p^1+p^2+-- ...

  8. Android笔记-Linux Kernel Ftrace (Function Trace)解析

    from : http://blog.csdn.net/hlchou/article/details/6441272 [ ftrace 简介 http://www.ibm.com/developerw ...

  9. 创建一个Scalar-valued Function函数来实现LastIndexOf

    昨天有帮助网友解决的个字符串截取的问题,<截取字符串中最后一个中文词语(MS SQL)>http://www.cnblogs.com/insus/p/7883606.html 虽然实现了, ...

最新文章

  1. Mysql默认密码的查找和修改
  2. Truncate 删除数据
  3. 计算机应用基础 网上教学设计方案,《计算机应用基础》(本)教学设计方案.doc...
  4. 基于DDD的现代ASP.NET开发框架--ABP系列之1、ABP总体介绍
  5. pjsip视频通信开发(上层应用)之拨号界面整体界面功能实现
  6. gis中dbf转为csv_Python中.dbf到.csv的批量转换
  7. 嫦娥之死天蓬元帅的转世
  8. 算法—快速排序Sqrt (C语言)
  9. SQL Server MYSQL 对外键建立索引的必要性
  10. oracle知识小结二
  11. 【原创】洛谷 LUOGU P3371 【模板】单源最短路径
  12. 1018. Binary Prefix Divisible By 5可被 5 整除的二进制前缀
  13. exe dll html病毒专杀,清除更改主页的mshtmldy.dll、mshtmldx.dll病毒
  14. 苹果电脑安装windows系统 失败后 磁盘空间丢失
  15. Java虚拟机的类加载机制全面解析
  16. aria2+RPC+m3u8下载工具(windows版)
  17. 如何通过树莓派/Python/smtp发送电子邮件
  18. m3u8视频下载和转码mp4
  19. FPGA——HLS简介
  20. 发现电脑屏幕总是不自动关闭?看看你是否打开了这些程序……

热门文章

  1. requests(二): json请求中固定键名顺序消除键和值之间的空格
  2. 多迪技术总监揭秘:普通UI设计师与顶级UI设计师的区别是什么?
  3. CentOS No manual entry for man 没有 xx 的手册页条目
  4. You should rebuild using libgmp = 5 to avoid timing attack vulnerability
  5. 在jsp页面中实现格式化数字,百分比,货币
  6. 【转载】探索式测试基础系列—生活进阶曲
  7. Socket 同步/异步 与阻塞/非阻塞区别
  8. Linux ALSA声卡驱动之六:ASoC架构中的Machine
  9. 15套漂亮的 PSD 格式的图标,不一样的视觉效果
  10. cisco路由器基本命令配置