为了把毕业晚会办得更好,老师想要挑出默契程度最大的k个人参与毕业晚会彩排。可是如何挑呢?老师列出全班同学的号数1,2,……,n,并且相信k个人的默契程度便是他们的最大公约数(这不是迷信哦~)。这可难为了他,请你帮帮忙吧!
PS:一个数的最大公约数即本身。
输入格式
两个空格分开的正整数n和k。(n>=k>=1)
输出格式
一个整数,为最大的默契值。
输入输出样例
输入 #1复制
4 2
输出 #1复制
2
说明/提示
【数据范围】
对于20%的数据,k<=2,n<=1000
对于另30%的数据,k<=10,n<=100
对于100%的数据,k<=1e9,n<=1e9(神犇学校,人数众多)
如果要找k个数的最小公约数,且这几个数可以表示成:a×1,a*2,a×3,a×4……a×k的话,很显然a就是他们的最小公约数。
由于1-n是连续的,很显然找到a×k必然有前面的数,所以只需要找a×k,可以使用二分法找到a。
同时,又由于a×k<=n, a<=n/k,我们要找最大的a,所以n/k就是答案。