求程序一个
开着的门 (door)
【问题描述】
小S来到了一条走廊前,这条走廊好长啊,一眼望不到头!走廊的一边有很多扇门,从1开始依次编了号,这些门有的开着有的关着,小S很是好奇。
她突然发现旁边有一块小黑板,上面写着:“这里一共有N扇门,分别编了号1,2,3,…,N。这里的主人离开时,留下了一个难题。他先把所有的门都关上,然后在这条走廊上走了N趟,第i趟的时候,他将所有编号是i的倍数的门的状态改变(原来开着的被关上,原来关着的打开)。现在,如果可以说出开着的门中编号最大的一扇在哪儿,你就可以直接到达走廊的另一头。”
可是,N实在太大了,小S需要你的帮助。
【输入格式】
文件包含一行,仅一个整数N(1≤N≤10^800),表示门的总数。
【输出格式】
文件包含一行,仅一个整数P,开着的门中编号最大的那扇门的编号。
【输入输出样例】
输入样例 输出样例
2 1
注意:n的范围高达10的800次方 1秒时间
参考答案:自己做吧!提醒一下:这个数一定是某个数的平方!!
如:1 4 9 16 25 36 ……