fork download
  1. program divisors;
  2. var n,h, contadivisori :int64;
  3.  
  4. procedure contadiv (x:int64);
  5. var y:int64;
  6.  
  7. begin
  8. contadivisori:=0;
  9. y:=1; h:=1;
  10. while y<=trunc(sqrt(x)) do
  11. begin
  12. if (x mod y =0) then
  13. begin
  14. if y<> x div y then h:=h+2
  15. else h:=h+1;
  16. end;
  17. y:=y+1;
  18. end;
  19. contadivisori:=h-1;
  20. end;
  21. function compute (x:int64): int64 ;
  22. var i, somma:int64;
  23. begin
  24. somma:=0;
  25. for i:=1 to n do
  26. begin
  27. contadiv(i);
  28. somma:=somma+ contadivisori;
  29. end;
  30. compute:=somma;
  31. end;
  32.  
  33.  
  34. begin
  35. readln(n);
  36.  
  37. writeln(compute(n));
  38. end.
Success #stdin #stdout 0.79s 5308KB
stdin
189037 
stdout
2325936