Pagini recente » Cod sursa (job #897762) | Cod sursa (job #1406760) | Cod sursa (job #1709658) | Cod sursa (job #1916126) | Cod sursa (job #585884)
Cod sursa(job #585884)
#include <cstdio>
#include <cmath>
using namespace std;
long n;
void citire()
{
freopen("nummst.in","r",stdin); scanf("%ld", &n);
}
bool prim(long x)
{
for(long d=2; d<=sqrt(double(x)); d++)
if(x%d==0)
return 0;
return 1;
}
long cmmdc(long a, long b)
{
if((!a) || (!b)) return a+b;
if(a>b) return cmmdc(a%b,b);
return cmmdc(a,b%a);
}
void solve()
{
if(n & 1)
{
if( prim(n) )
printf("%ld %ld", n/2, n/2+1);
else
{
for(long d=3; d<=n; d++)
if(n%d==0)
{
long c = n/d;
//long a, aa, b, bb, cma, cmb, sh1, sh2;
long a, b, cm, cmmmc=0, sh1, sh2;
for(long j=1; j<=d; j++)
{
a = j*c; b = (d-j)*c;
cm = (a*b)/cmmdc(a, b);
if(cm > cmmmc)
cmmmc = cm, sh1 = a, sh2 = b;
}
printf("%ld %ld", sh1, sh2);
break;
}
}
}
else
printf("%ld %ld", n/2, n/2);
}
int main()
{
freopen("nummst.out","w",stdout);
citire();
solve();
return 0;
}