pku2800.java

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

JAVA
51
字号
import java.io.*;
import java.util.*;
import java.lang.Math;

class Main
{
    public static void main(String args[]) throws Exception
    {
        Scanner cin=new Scanner(System.in);
		long N, K, i, ans, part, sk, ssk, s, e, tmp;
		
		while (cin.hasNext())
		{
			N = cin.nextInt();
			K = cin.nextInt();
			
			sk = (long)Math.sqrt((double)K);
			ssk = K / sk;
			
			for (i = 1, ans = 0; i <= N && i <= ssk; i++)
			{
				ans += K % i;
			}
			if (N > K)
			{
				ans += (N - K) * K;
			}
			for (i = sk; i > 1; i--)
			{
				s = K / i;
				e = K / (i - 1);
				if (N < s)
				{
					break;
				}
				if (N < e)
				{
					e = N;
				}
				tmp = (K % e + K % (s + 1));
				tmp *= (e - s);
				tmp /= 2;
				ans += tmp;
			}
			System.out.println(ans);
		}
		        
    }
}

⌨️ 快捷键说明

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