码迷,mamicode.com
首页 > 其他好文 > 详细

1245 - Harmonic Number (II)---LightOJ1245

时间:2016-05-31 22:25:50      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:

http://lightoj.com/volume_showproblem.php?problem=1245

题目大意:一个数n除以1到n之和

分析:暴力肯定不行,我们可以先求1~sqrt(n)之间的每个数的个数,然后再求n除以1~sqrt(n)之间的数的和

这样算下来就只有2*sqrt(n)的复杂度

最后还要排除多加的,、

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
#include<iostream>
#include<vector>
#include<queue>

using namespace std;
typedef long long int LL;
#define N 10001000
#define ESP 1e-8
#define INF 0x3f3f3f3f
#define memset(a,b) memset(a,b,sizeof(a))

int main()
{
    int T, t=1;
    scanf("%d", &T);
    while(T --)
    {
        LL n;
        scanf("%lld", &n);

        LL sum =0;
        for(int i=1; i<=sqrt(n); i++)
        {
            sum += n/i;
        }

        for(int i=1; i<=sqrt(n); i++)
        {
            sum += (n/i - n/(i+1)) * i;
        }

        if(n/(int)sqrt(n) == (int)sqrt(n))
            sum -= (n/sqrt(n) - n/(sqrt(n)+1)) * sqrt(n);

        printf("Case %d: %lld\n", t++, sum);
    }
    return 0;
}

 

1245 - Harmonic Number (II)---LightOJ1245

标签:

原文地址:http://www.cnblogs.com/linliu/p/5547543.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!