问题2830--军训

2830: 军训

时间限制: 2 Sec  内存限制: 128 MB
提交: 173  解决: 43
[状态] [讨论版] [提交] [命题人:]
题目描述

小i不喜欢军训,尤其是练队列。

在军训时,小i发现教官喜欢将n个人排成一个矩阵,记矩阵的长和宽为ab,满足n=ab,1ab,教官会选择(ba)最小的方案。

然而有时候n的值很尴尬,例如n=52时,(ba)的最小值为(134)=9,这个差值太大,队列就会显得不美观。

于是小i想到了一个解决方法,将n个人分成两个矩阵,这两个矩阵的长宽记为a,b,c,d,满足n=ab+cd,1ab,1cd,然后令(ba)+(dc)最小,记这个最小值为f(n)。当n=52时,a=4,b=4,c=6,d=6,得f(52)=0

然而当n很大时,小i就算不动了,于是这个问题就交给了你。给定n的值,求f(n)

输入

第一行一个正整数T表示数据组数。

对于每组数据,第一行输入一个正整数n

T200,2n109



输出
对于每组数据输出一行,表示f(n)
样例输入 Copy
5
52
13
17
63
81
样例输出 Copy
0
0
0
3
1
来源/分类