问题1214--基础练习——循环9(找一个正整数大于1且小于本身的最大约数)

1214: 基础练习——循环9(找一个正整数大于1且小于本身的最大约数)

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 128 MB

题目描述

输入一个正整数 n,计算n的大于1且小于 n 的最大约数,并输出这个约数;如果n不存在大于1且小于n的最大约数,就输出 0 .

输入

一行一个正整数 n,( 1 ≤ n ≤ 1010 

输出

一行一个正整数,表示 n的大于1且小于n的最大约数。

样例输入 Copy

6

样例输出 Copy

3

提示

 方法和求n的大于1且小于n的最小约数差不多,也可以利用其结果来求(一个正整数n如果存在除了1和本身之外的最小约数k,则n/k就是n除了1和本身之外的最大约数。反之亦然)。一般来说(可以简单估算或者证明),使用穷举法,寻找除了1和本身之外的最小约数,比寻找除了1和本身之外的最大约数要快,所以本题最好就是先求除了1和本身之外的最小约数,然后再间接求除了1和本身之外的最大约数。

来源/分类