8.7 约数个数shlqsh 2535

来源:互联网 发布:淘宝店怎么发布宝贝 编辑:程序博客网 时间:2024/05/16 07:17

  • 题目
  • 题解
  • 代码

题目

定义f(x)为x的约数个数,x为正整数。
求 =f(a)+f(a+1)+……+f(b),即a,b之间每个数的约数的总和。

题解

枚举a到b,求约数,超时50分

求约数的个数就是求在a,b之间有数i为约数的有多少个。求1到x之间为i的约数有多少,计算x/i可得

时间复杂度O(n)

代码

var  a,b,i,x,y,j:longint;begin  assign(input,'shlqsh.in');  assign(output,'shlqsh.out');  reset(input);  rewrite(output);  readln(a,b);  j:=a-1;  for i:=1 to j do    x:=x+j div i;  for i:=1 to b do    y:=y+b div i;  writeln(y-x);  close(input);  close(output);end.
原创粉丝点击