算法:枚举,数学
复杂度:
解题思路:
所有约数都是成对出现的:如果 是
的约数,那么
也是
的约数。
我们可以只枚举较小的约数,然后计算出较大的约数即可。那么需要枚举的范围满足:,则
。因此只需要枚举
次。
C++ 代码:
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 2;; i++)
if (n % i == 0)
{
cout << n / i << endl;
break;
}
return 0;
} 
京公网安备 11010502036488号