首页 > 代码库 > XDOJ_1170_数学
XDOJ_1170_数学
http://acm.xidian.edu.cn/problem.php?id=1170
优化一下暴力的过程,将数量一样的放一起。
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #define LL long long using namespace std; LL n,m; LL gcd(LL x,LL y) { return y?gcd(y,x%y):x; } LL c(LL x,LL y) { return (y*(y+1)*(2*y+1))/6-((x-1)*x*(2*x-1))/6; } int main() { while(~scanf("%lld%lld",&n,&m) && n && m) { LL ans = 0; int now = 1; while(now <= n) { int t = n/now,endd = min(m,n/t); ans += t*c(now,endd); if(endd == m) break; now = endd +1; } LL x = n*m; LL g = gcd(ans,x); printf("%lld/%lld\n",ans/g,x/g); } }
XDOJ_1170_数学
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。