zoukankan      html  css  js  c++  java
  • 1968: [Ahoi2005]COMMON 约数研究

    1968: [Ahoi2005]COMMON 约数研究

    Time Limit: 1 Sec  Memory Limit: 64 MB
    Submit: 1127  Solved: 852
    [Submit][Status][Discuss]

    Description

    Input

    只有一行一个整数 N(0 < N < 1000000)。

    Output

    只有一行输出,为整数M,即f(1)到f(N)的累加和。

    Sample Input

    3

    Sample Output

    5

    HINT

     

    Source

    Day2

    题解:一个神题(HansBug:其实一开始看到别人的AC代码一个个才几百B有点被吓到了),其实我们可以逆向思维想这个问题,不要老想着小学学奥数时候学会的数字的约数个数公式,那样子只会添乱,只需要考虑各种不同的约数对于答案的贡献程度即可,即[N/I](设约数为I),然后没了,可以当作水题了= =

     1 /**************************************************************
     2     Problem: 1968
     3     User: HansBug
     4     Language: Pascal
     5     Result: Accepted
     6     Time:88 ms
     7     Memory:220 kb
     8 ****************************************************************/
     9  
    10 var n,m,ans:int64;
    11 begin
    12      readln(n);m:=n;ans:=0;
    13      while m>0 do
    14            begin
    15                 inc(ans,n div m);
    16                 dec(m);
    17            end;
    18      writeln(ans);
    19      readln;
    20 end.
  • 相关阅读:
    hdu 4460spfa用map来实现
    hdu 2579
    hdu 2845
    hdu 4462
    hdu 4557
    hdu 4639
    URAL 2078 Bowling game
    UVA
    HDU 5773 The All-purpose Zero 脑洞LIS
    Codeforces Round #368 (Div. 2) C. Pythagorean Triples 数学
  • 原文地址:https://www.cnblogs.com/HansBug/p/4472039.html
Copyright © 2011-2022 走看看