编写程序,读入整数m(它是两非负整数x和y的和),以及整数n(它是x,y的最小公倍数),求x和y。
输入说明:
若干组两个非负整数m和n,以0 0结束。
输出说明:
按照非降序输出x和y
Sample Input
10 12
45 54
0 0
Sample Output
4 6
18 27
编写程序,读入整数m(它是两非负整数x和y的和),以及整数n(它是x,y的最小公倍数),求x和y。
输入说明:
若干组两个非负整数m和n,以0 0结束。
输出说明:
按照非降序输出x和y
Sample Input
10 12
45 54
0 0
Sample Output
4 6
18 27
#include <stdio.h>
#define N 10
int main()
{
int x[N],y[N];
int m[N],n[N];
int count=0,t;
for(int i=0;i<N;i++)
{
scanf("%d%d",&m[i],&n[i]);
if(m[i]==0 && n[i]==0)
break;
count++;
}
for(int i=0;i<count;i++)
{
for(x[i]=1;x[i]<m[i];x[i]++)
{
y[i]=m[i]-x[i];
if(n[i]%x[i]==0 && n[i]%y[i]==0)
{
if(x[i]>y[i])
{
t=x[i];
x[i]=y[i];
y[i]=t;
}
break;
}
}
}
for(int i=0;i<count;i++)
{
printf("%d %d\n",x[i],y[i]);
}
return 0;
}