Problem Description

For two integers m and kk is said to be a container of m if k is divisible by m. Given 2 positive integers n and m (m < n),

the function f(nm) is defined to be the number of containers of m which are also no greater than n.

For example, f(5, 1)=4, f(8, 2)=3, f(7, 3)=1, f(5, 4)=0...Let us define another function F(n) by the following equation:

Now given a positive integer n, you are supposed to calculate the value of F( n).

Input

There are multiple test cases. The first line of input contains an integer T(T<=200) indicating

the number of test cases. Then T test cases follow.Each test case contains a positive integer n (0 <n <= 2000000000) in a single line.

Output

For each test case, output the result F(n) in a single line.

Sample Input

1
4

Sample Output

4

题目大意

求 n/i-1;(0<i<n)的和,,,,由于数据高达20亿●﹏●,所以,暴力就会T!!!

思路

画图,画出函数图像:y = n/x,以 y = x对称可以用 横坐标表示i 从该点画一条垂直的线

这条线上的所有整数点的个数就是 n/i那么n/1+n/2+n/3+……n/(n-2)+n/(n-1)+n/n(有点像调和级数哦じò ぴé)

可以表示为i*(n/i)=n这条线答案就是这条线与坐标轴围成的面积内的整数点的个数画一条x=y的线与xy=n相交

可以知道面积关于 x=y 对称我们只需求n/1+n/2+n/3+……求到k=sqrt(n)处(1个梯形)

之后乘以2(得到2个梯形的面积 其中有一个正方形的区域是重复的)减去重复的区域k*k个

就可以用这个方法,也可以用来快速求(n/1+n/2+n/3+…+n/n)。

参考代码:

#include<iostream>
#include<cmath>
using namespace std;
#define ll long long
int main()
{
int t;
cin>>t;
while(t--)
{
ll n,sum=;
cin>>n;
int m=sqrt(n);
for(int i=;i<=m;i++)
sum+=n/i;
sum*=;
sum=sum-m*m-n;
cout<<sum<<endl;
}
return ;
}

Number of Containers ZOJ - 3175(数论题)的更多相关文章

  1. Number of Containers(数学) 分类: 数学 2015-07-07 23:42 1人阅读 评论(0) 收藏

    Number of Containers Time Limit: 1 Second Memory Limit: 32768 KB For two integers m and k, k is said ...

  2. BZOJ 3209: 花神的数论题 [数位DP]

    3209: 花神的数论题 题意:求\(1到n\le 10^{15}\)二进制1的个数的乘积,取模1e7+7 二进制最多50位,我们统计每种1的个数的数的个数,快速幂再乘起来就行了 裸数位DP..\(f ...

  3. FJUT-这还是一道数论题

    这还是一道数论题 TimeLimit:4000MS  MemoryLimit:128MB 64-bit integer IO format:%lld Special Judge   Problem D ...

  4. 【洛谷】4317:花神的数论题【数位DP】

    P4317 花神的数论题 题目背景 众所周知,花神多年来凭借无边的神力狂虐各大 OJ.OI.CF.TC …… 当然也包括 CH 啦. 题目描述 话说花神这天又来讲课了.课后照例有超级难的神题啦…… 我 ...

  5. 【LG4317】花神的数论题

    [LG4317]花神的数论题 题面 洛谷 题解 设\(f_{i,up,tmp,d}\)表示当前在第\(i\)位,是否卡上界,有\(tmp\)个一,目标是几个一的方案数 最后将所有\(d\)固定,套数位 ...

  6. BZOJ3209 花神的数论题 【组合数学+数位DP+快速幂】*

    BZOJ3209 花神的数论题 Description 背景 众所周知,花神多年来凭借无边的神力狂虐各大 OJ.OI.CF.TC …… 当然也包括 CH 啦. 描述 话说花神这天又来讲课了.课后照例有 ...

  7. [BZOJ3209]花神的数论题 组合数+快速幂

    3209: 花神的数论题 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2498  Solved: 1129[Submit][Status][Disc ...

  8. 【BZOJ3209】花神的数论题 数位DP

    [BZOJ3209]花神的数论题 Description 背景众所周知,花神多年来凭借无边的神力狂虐各大 OJ.OI.CF.TC …… 当然也包括 CH 啦.描述话说花神这天又来讲课了.课后照例有超级 ...

  9. 【bzoj3209】: 花神的数论题 数论-DP

    [bzoj3209]: 花神的数论题 首先二进制数中1的个数最多就是64个 设所有<=n的数里二进制中1的个数为i的有a[i]个 那么答案就是  然后快速幂 求a[i]可以用DP 设在二进制中从 ...

随机推荐

  1. node中的crypto内置模块

    crypto模块的目的是为了提供通用的加密和哈希算法.用纯JavaScript代码实现这些功能不是不可能,但速度会非常慢.Nodejs用C/C++实现这些算法后,通过cypto这个模块暴露为JavaS ...

  2. 使用git Bash Here 绑定账号密码错误后 无法自动重新绑定

    新安装的git 要打开gitbash 运行下面两个命令:1 git config --global user.name "Your Name"2 git config --glob ...

  3. 预处理、const、static与sizeof-static有什么作用(至少说出2个)

    1:在C语言中,关键字static有3个明显的作用: (1)在函数体,一个被声明为静态的变量在这一函数被调用的过程中维持其值不变. (2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所 ...

  4. 【Eureka】Eureka 是什么

    Eureka是什么? Eureka 是 Netflix 的一个子模块,也是核心模块之一.Eureka 是一个基于 Rest 的服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册和发现对于 ...

  5. 以下示例使用一个 x,y 坐标列表创建了一个多边形几何对象。然后使用裁剪工具来裁剪具有多边形几何对象的要素类。

    import arcpy # Create an Array object. # array = arcpy.Array() # List of coordinates. # coordList = ...

  6. centos7 下安装和配置 mongodb (重点)

    1.下载安装包 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.4.tgz 2.解压 tar -zxvf m ...

  7. 性能测试 | 理解单线程的Redis为何那么快?

    前言 Redis是一种基于键值对(Key-Value)的NoSQL数据库,Redis的Value可以由String,hash,list,set,zset,Bitmaps,HyperLogLog等多种数 ...

  8. express使用ejs模板引擎渲染html文件

    小场景小知识点. 在使用express过程中,按照官网教程,利用express生成器很容易初始化express项目模板. 那么初始化项目之后应该如何使用ejs作为模板引擎呢?如下 // 注释掉默认生成 ...

  9. 深度学习之Faster-R-CNN

    哎!还是看大神博客吧 https://blog.csdn.net/liuxiaoheng1992/article/details/81843363

  10. springboot自定义filter获取spring容器bean对象

    今天在自己定义的filter中,想要直接注入spring容器的其它bean进行操作,发现不能正常的注入: 原因:web容器加载顺序导致, 加载顺序是listener——filter——servlet, ...