#642. 切蛋糕

切蛋糕

说明

你有一块非常长且薄的蛋糕。我们可以认为它是一维的,长度为n。
今天是你的生日,你有不少朋友要来你的寝室开party。
在你朋友到来前,你想要把蛋糕切好成若干块。

当你的朋友到来时,你会用以下规则来分配蛋糕。
从蛋糕的左端开始,你给你的第一位朋友若干块连续的蛋糕,接下来你给第二位朋友之后的若干块连续的蛋糕,以此类推。

你显然被朋友认为是一个非常nice的人,也就是你必须保证每个人分到的蛋糕量是相同的。
不同的朋友拿到的蛋糕块数可能不同,但量必须相同。

你已经不记得你邀请了多少位朋友,但你非常清楚地记得,朋友的个数x是一个蛋糕长度n的因子,且x<n。

现在,你要开始切蛋糕了,你必须保证,对于任何可能的朋友个数x,按照以上的蛋糕分配法则,都是可以做到每个人拿到的蛋糕量相同。

请计算,你最少需要把蛋糕切成多少块,来达到以上要求。


下面解释第一组样例数据。

由于蛋糕长度为6。所以朋友个数x可能为1个,2个或者3个。
我们可以将蛋糕切成2,1,1,2,这样的4份。
如果只有1个朋友,直接全部给他。
如果有2个朋友,我们将第一块和第二块给第一个朋友,第三块和第四块给第二个朋友。
如果有3个朋友,我们将第一块给第一个朋友,第二和第三块给第二个朋友,第四块给第三个朋友。
以上的切法是最少的。
所以答案为4。

输入格式

多组输入数据
每组数据第一个数为n

表示蛋糕的长度(2<=n<=123456)


输出格式

对于每组数据,输出你最少需要把蛋糕切成多少块。
6
3
15
4
1
7

Source

外部题库 洛谷