给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值
其中k mod i表示k除以i的余数。
例如j(5, 3)=3 mod 1 + 3 mod 2 + 3 mod 3 + 3 mod 4 + 3 mod 5=0+1+0+3+3=7
标签:long line mes color font sof pac memory des
输出仅一行,即j(n, k)。
1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 #define LL long long 6 7 LL n,k,w,r,ans; 8 9 int main() 10 { 11 scanf("%lld%lld",&n,&k); 12 if(n>k) 13 { 14 ans=(n-k)*k; 15 n=k; 16 } 17 for(int i=1;i<=n;i=r+1) 18 { 19 w=k/i;r=k/w; 20 if(r>n) r=n; 21 ans+=(r-i+1)*k-w*(r-i+1)*(r+i)/2; 22 } 23 printf("%lld\n",ans); 24 return 0; 25 }
标签:long line mes color font sof pac memory des
原文地址:https://www.cnblogs.com/InWILL/p/9693618.html