编程题
醉酒的狱卒 ## 来源 Greater New York 2002 (ZOJ1350, POJ1218) ## 题目描述 某个监狱有一排、共n间牢房,编号为1~n。每间牢房关着一名囚犯,每间牢房的门刚开始时都是关着的。有一天晚上,狱卒决定玩一个游戏。游戏的第1轮,他喝了一杯酒,然后沿着监狱,把所有牢房的门全部打开;游戏的第2轮,他又喝了一杯酒,然后沿着监狱,把编号为偶数的牢房的门关上;游戏的第3轮,他又喝了一杯酒,然后沿着监狱,对编号为3的倍数的牢房,如果牢房的门开着,则关上,否则打开;游戏第i轮,狱卒对编号为i的倍数的牢房进行上述相同操作;狱卒重复游戏n轮。游戏结束后,他喝下最后一杯酒,然后醉倒了。 这时,囚犯才意识到他们牢房的门可能是开着的,而且狱卒醉倒了,所以他们越狱了。 给定牢房的数目,求越狱囚犯的人数。 ## 输入描述 输入文件的第1行为一个正整数,表示测试数据的个数。每个测试数据占一行,为一个整数n,5≤n≤100,表示牢房的数目。 ## 输出描述 对每个测试数据所表示的牢房数目n,输出越狱的囚犯人数。 ## 样例输入 ```txt 2 5 100 ``` ## 样例输出 ```txt 2 10 ```
查看答案
赣ICP备20007335号-2