题意:给出X,让你输出一对数,使得lcm(a,b)==x,同时a和b要尽量小
思路:其实很容易发现要使结果最小,a和b就是X的素因子的组合乘积尽量小,枚举因子即可。
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+1;
typedef long long ll;
ll lcm(ll a,ll b)
{
return (a*b)/__gcd(a,b);
}
int main()
{
ll x,ans;
scanf("%lld",&x);
for(ll i=1;i<=x/i;++i) if(x%i==0&&lcm(i,x/i)==x) ans=i;
printf("%lld %lld\n",ans,x/ans);
}