POJ 2800
2017-06-26 11:46
183 查看
#include<iostream> #include<cmath> using namespace std; int main() { long long N,K; while(cin>>N>>K) { long long S,T,i,s,e,ans=0; S=sqrt((double)K); T=K/S; for(i=1,ans=0;i<=N&&i<=T;i++) ans+=K%i; if(N>K) ans+=(N-K)*K; for(i=S;i>1;i--) { s=K/i; e=K/(i-1); if(s>N) break; if(e>N) e=N; ans=ans+(e-s)*(K%e+K%(s+1))/2; } cout<<ans<<endl; } return 0; }
相关文章推荐
- POJ 百炼 保研机试 2800:垂直直方图
- poj 2800 LA 5916 求一个数模1到n 得到的和
- poj2800
- POJ - 2800
- poj&nbsp;百炼&nbsp;2800:垂直直方图
- UVa 1363 POJ 2800 Joseph's Problem
- POJ 2800 : Joseph\'s Problem (须仔细分析)
- POJ 2800 解题总结
- POJ 2800 Joseph's Problem 笔记
- POJ 2800 垂直直方图 解题报告
- POJ 2800 Joseph’s Problem 数论找规律
- poj 2800 找规律
- (one day one problem)poj 2800 Joseph's Problem (数学)
- POJ 2800
- poj 2800 Joseph’s Problem(数论)
- POJ 2800 Joseph's Problem(数论)
- poj 百练2800 垂直直方图
- POJ 2800 Joseph's Problem
- Poj 2800 Joseph's Problem - 找规律
- poj 2440