pku2668.cpp

来自「这是ACM 方面的资料 是PKU的 北京大学的出来的」· C++ 代码 · 共 41 行

CPP
41
字号
#include "stdio.h"
#include "math.h"

__int64 get(__int64 a,__int64 b)
{
	if(a%b==0) return a/b;
	else return a/b+1;	
}

__int64 min(__int64 a, __int64 b)
{
	return (a<b)?a:b;	
}

int main()
{
	__int64 D,N,all,t,i;
	while(scanf("%I64d%I64d",&D,&N)!=-1)
	{
		if(D==0&&N==0) break;
		all=0;
		t=(int)(sqrt(D)+0.5);
		t=get(D,t);
		for(i=1;i<t && i<=N;i++)
		{
			all+=get(D,i);	
		}
		if (N>=t)
		{
			all+=(N-t+1);
			for(i=1;i<t;i++)
			{
				all += min(get(D,i),N+1)-t;
			}
		}
		printf("%I64d\n",all);	
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?