LightOJ 1098 前n个数的所有约数求和
来源:互联网 发布:json数组转list 编辑:程序博客网 时间:2024/06/01 19:57
对于前n个数的约数求和,求出当约数为从2到sqrt(n)时,每个约数的个数,再求出当约数个数为2到sqrt(n)时所有约数的和。
假设对100以内的每个数的所有约数求和
2,3,4,5,6,7,8,9,10,每个约数出现的次数是100/i(i=2,3,...,10).当约数为11时,出现次数为100/11,约数为12时,12出现次数为100/12.因此区间(100/9,100/8]中的整数为出现次数为8次的约数集合,区间(100/8,100/7]中的整数为出现次数为7次的约数集合。。。区间(100/3,100/2]中的整数为出现次数为2次的约数集合。
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
long long getAns(long long m)
{
long long ans = 0;
for(long long i = 2;i<=sqrt(m);i++)
{
//前sqrt(n)个约数
ans += (m/i-1)*i;
//约数个数为前sqrt(n)
long long j = m/i;
long long q = (m/(i+1));
if(j!=i)
{
ans += (j+q+1)*(j-q)/2*(i-1);
}
}
return ans;
}
int main()
{
int T;
long long m;
scanf("%d",&T);
for(int i = 1;i<=T;i++)
{
scanf("%lld",&m);
long long ans = getAns(m);
printf("Case %d: %lld\n",i,ans);
}
return 0;
}
- LightOJ 1098 前n个数的所有约数求和
- LightOJ 1336 Sigma Function 求前n个数中约数和为偶数的数的个数
- 任意前n个数求和
- sqr(n)的约数个数
- 【数论】线性筛素数,线性筛欧拉函数,求前N个数的约数个数
- 【数论内容】线性筛素数,线性筛欧拉函数,求前N个数的约数个数
- 【转】线性筛素数,线性筛欧拉函数,求前N个数的约数个数
- 【数论】线性筛素数,线性筛欧拉函数,求前N个数的约数个数
- N的所有约数之和
- 给个n,求1到n的所有数的约数个数的和~
- 给个n,求1到n的所有数的约数个数的和~
- 求N的阶乘约数的个数
- wannfly练习赛8 给个n,求1到n的所有数的约数个数的和
- 牛客练习赛8,给个n,求1到n的所有数的约数个数的和~
- LightOJ 1104解题报告 求大数的所有约数
- LightOJ 1336 Sigma Function(1--n中所有因子和为偶数的数字个数)
- n个数 取任意个数相加求和的个数
- 数论线性筛总结 (素数筛,欧拉函数筛,莫比乌斯函数筛,前n个数的约数个数筛)
- IO系统性能之三:在Linux中监视IO性能
- Ubuntu系统启用Apache Mod_rewrite模块
- DELPHI字符串、数组操作函数
- Java之美之JVM 中堆栈的区别
- Web前端研发工程师编程能力飞升之路
- LightOJ 1098 前n个数的所有约数求和
- 利用负载均衡优化和加速HTTP应用
- 转:知新网CTO:从程序员的视角,实践精益创业
- 系统IO性能参数及不同方案关注点
- Web开发者必知的10个职业常识
- 人真的有人的用处——控制论和她父亲(维纳)的那些事
- 今天开始, 养成写博客的习惯.
- Handler 异步处理
- 阅读源代码的好工具source insight及使用