分析:直接找出第一个质因数,那么就是最小的一个质因数,或者两个质因数相等了。
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int maxNumber = 0;
for (int i = 2; i * i <= n; ++i)
{
bool flag = true;
for (int j = 2; j * j <= i; ++j)
{
if (i % j == 0)
{
flag = false;
//如果这个不是质数,那么就跳过下面一个if,
//继续判断下一个是否是质数
}
}
if (flag&& n % i == 0)
{
maxNumber = n/i;
//这个时候,i要么是最小的一个
//要么两个质因数相等
}
}
cout << maxNumber;
}