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

1968: [Ahoi2005]COMMON 约数研究

时间:2015-05-02 16:30:11      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

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.

 

1968: [Ahoi2005]COMMON 约数研究

标签:

原文地址:http://www.cnblogs.com/HansBug/p/4472039.html

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