fork download
  1. /*
  2. --------------------------------DO NOT COPY I REQUEST YOU PLEASE--------------------------
  3.  
  4. AUTHOR : Chandan Agrawal
  5. College : Poornima College of Engg. jaipur, Raj
  6. Mail : chandanagrawal23@gmail.com
  7. */
  8.  
  9. #include<bits/stdc++.h>
  10. #include<stdio.h>
  11. using namespace std;
  12.  
  13. #define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
  14. #define MAX 100050
  15.  
  16. #define ll long long
  17. #define ld long double
  18. #define lli long long int
  19.  
  20. #define pb emplace_back
  21. #define INF 1000000000
  22. #define mod 1000000007
  23. #define MOD 1000000007
  24.  
  25. // trignometric function always give value in Radians only
  26. #define PI acos(-1) //3.1415926535897932384626433832795028
  27. #define dsin(degree) sin(degree*(PI/180.0))
  28. #define dcos(degree) cos(degree*(PI/180.0))
  29. #define dtan(degree) tan(degree*(PI/180.0))
  30.  
  31. #define rsin(radian) sin(radian)
  32. #define rcos(radian) cos(radian)
  33. #define rtan(radian) tan(radian)
  34.  
  35. #define loop(i,n) for (lli i = 0; i < n; i++)
  36. #define loopitr(xt,vec) for (auto xt : vec)
  37. #define FOR(i,a,b) for (lli i = a; i < b; i+=1)
  38. #define loop_rev(i,n) for (lli i = n-1; i >= 0; i--)
  39. #define FOR_REV(i,a,b) for (lli i = a; i >= b; i--)
  40. #define itr :: iterator it
  41. #define WL(t) while(t --)
  42.  
  43. #define all(v) v.begin(),v.end()
  44. #define sz(x) int(x.size())
  45. #define F first
  46. #define S second
  47.  
  48. #define mii map<lli,lli>
  49. #define vi vector<lli>
  50. #define seti set<lli>
  51. #define pii pair<lli,lli>
  52.  
  53. #define gcd(a,b) __gcd((a),(b))
  54. #define lcm(a,b) (a/gcd(a,b))*b
  55. #define abs(x) ((x < 0)?-(x):x)
  56.  
  57. #define print(x) printf("%lli\n",x);
  58. #define print2(x,y) printf("%lli %lli\n",x,y);
  59. #define print3(x,y,z) printf("%lli %lli %lli\n",x,y,z);
  60.  
  61. #define scanarr(a,n) for(lli i=0;i<n;i++) cin>>a[i];
  62. #define scanvector(a,n) for(lli i=0;i<n;i++){ lli x ; cin>>x; a.push_back(x);}
  63.  
  64. #define printarr(a,n) for(lli i=0;i<n;i++) printf("%lli ",a[i]); printf("\n");
  65. #define printvector(vec) for(auto xt : vec) cout<<xt<<" "; cout<<"\n";
  66. #define printset(st) for(auto xt : st) cout<<xt<<" "; cout<<"\n";
  67.  
  68. #define FD(N) fixed<<setprecision(N)
  69.  
  70. #define endl '\n'
  71.  
  72. #define deb(x) cout<<#x<<" "<<x<<endl;
  73.  
  74.  
  75.  
  76.  
  77.  
  78. bool is_even(lli n){ return(!(n&2));}
  79.  
  80. bool is_odd(lli n){ return(n&2);}
  81.  
  82.  
  83. bool isvowel(char x){ return(x=='a' || x== 'e' ||x=='i' || x== 'o' || x=='u' ); }
  84.  
  85. lli mceil(lli a,lli b){
  86. if(a%b==0) return(a/b);
  87. else return(a/b +1);
  88. }
  89. lli mfloor(lli a,lli b){
  90. return(a/b);
  91. }
  92.  
  93. ll modmul(ll a, ll b) {
  94. return ((a%mod) * (b%mod)) % mod;
  95. }
  96.  
  97. ll modmul2(ll a, ll b) {
  98. return (((a%(mod-1)) * (b%(mod-1))) % (mod-1));
  99. }
  100.  
  101. ll modadd(ll a , ll b){
  102. return((a%mod)+(b%mod)+mod)%mod;
  103. }
  104.  
  105. ll modsub(ll a , ll b){
  106. return((a%mod) - (b%mod) + mod)%mod;
  107. }
  108.  
  109. lli fastexpo(lli a,lli b){
  110. a = a%mod;
  111. lli ans=1;
  112. while(b){
  113. if(b&1)
  114. ans=(ans*1ll*a)%mod;
  115. a=(a*1ll*a)%mod;
  116. b=b/2;
  117. }
  118. return ans;
  119. }
  120.  
  121.  
  122. bool ispower2(lli n){
  123. return(n and (n&(n-1))==0 );
  124. }
  125.  
  126.  
  127.  
  128. // chandan1,2
  129. void chandan1(){int y=1;return;}
  130. void chandan2(){
  131. loop(i,10){
  132. lli x=1;
  133. }
  134. return(chandan1());
  135. }
  136.  
  137. lli n_natural(lli n){
  138. lli ans = modmul(n,n+1);
  139. ans = modmul(ans,fastexpo(2,mod-2));
  140. return ans;
  141. }
  142. int main(){
  143. fastio
  144. lli t=1;
  145. //cin>>t;
  146. chandan2();
  147. while(t--) {
  148. lli n;
  149. cin>>n;
  150. lli ans=0;
  151. for(lli l=1;l<=n;){
  152.  
  153. lli r = n/(n/l);
  154.  
  155. //sum from l to r , (l,r) = 5,7 = 5+6+7
  156.  
  157. lli diff = n_natural(r)-n_natural(l-1);
  158.  
  159. ans = modadd(ans,modmul(diff,(n/l)));
  160.  
  161. l=r+1;
  162. }
  163. cout<<ans;
  164. }
  165. return 0;
  166. }
Success #stdin #stdout 0s 4376KB
stdin
60
stdout
3014