解题思路
先说这是我见过最水的C题了,分解因数找互质的一对因数的最大值中的最小值注意一下数据范围就可以了
#include <iostream>
#include <stdlib.h>
#include <algorithm>
#include <math.h>
#include <cstdio>
using namespace std;
int main()
{
long long n;
cin >> n;
long long minn = 0x3f3f3f3f3f3f3f3f3f3f3f3f3f3f;
for (long long i = 1; i * i <= n; ++i)
{
if (__gcd(i, n/i) == 1 && n % i == 0 && i != n/i)
{
minn = min(minn, max(i, n / i));
}
}
if (minn == 0x3f3f3f3f3f3f3f3f3f3f3f3f3f3f)
{
cout << 1 << " " << n << endl;
return 0;
}
cout << min(minn, n / minn) << " " << max(minn, n / minn) << endl;
return 0;
}