UVA440 Eeny Meeny Moo

题目描述

## 题目背景 相信你已经体验过了——如果一个国家有很多个人同时上网,那么网速会变得非常非常慢~ 为了解决这个棘手的问题,乌尔姆大学要制定一个“高峰负荷应急计划”。他们希望能以最系统、最公平的方式在网络高峰时切断德国一些城市的网络接入,好使网络快一点。 假设德国现在有 $n$ 个随机排列的城市,其中弗莱堡位列第一,乌尔姆在第二位,卡尔斯鲁厄排名第三,以此类推。 我们要选择一个数 $m$,依照这样的规律断开某些城市的互联网连接: - 首先切断城市 $1$ 的互联网接入 - 接着切断城市 $1+m$ 的互联网接入 - 以此类推,切断 $1+2m$、$1+3m$ 等城市的互联网接入。 - 切断互联网接入的时候忽略已经被切断互联网的城市。 城市的排列是环形的,也就是说城市的互联网应该会是循环切断的。假如现在我们要切断城市 $n-3$ 的互联网接入,而 $m$ 的值是 $5$,那么接下来要切断的是城市 $3$ 的互联网接入(从城市 $n-3$ ,分别数到 $n-2$、$n-1$、$n$、$2$(这里城市 $1$ 因为已经切断了所以忽略不计)、$3$)。 举个例子: - 如果当前的 $m=5$ 而 $n=17$,那么城市的断网顺序会是这样的一个序列: >[1,6,11,16,5,12,2,9,17,10,4,15,14,3,8,13,7] 问题是,最后给乌尔姆断网显然是最好的(因为那里是许多优秀程序员的来源地),所以对于给定的 $n$,乌尔姆大学需要仔细选择数字 $m$,保证最后一个切断网络连接的是乌尔姆(城市 $2$)。 你的任务是编写一个程序,读取 $n$ 个城市,之后给出**最小而且能保证最后才给乌尔姆断网**的数字 $m$。

输入格式

输入有一行或多行,每行包含一个数字 $n$。 请读取输入直到输入的 $n$ 为 $0$。

输出格式

输出有一行或多行。对于每个不是 $0$ 的 $n$,打印一行一个 $m$,满足题目中的要求。