Viết 1 chương nhập 2 số nguyên a và b và rút gọn a/b
Code:
#include <bits/stdc++.h>
using namespace std;
int UCLN(int a , int b)
{
while(1)
{
if(abs(a) > abs(b))
a = abs(a) - abs(b);
if(abs(b) > abs(a))
b = abs(b) - abs(a);
if(abs(a) == abs(b))
break;
if(a == 0 || b == 0)
break;
}
if(a == 0 || b == 0)
return abs(a - b);
else
return abs(a);
}
int main()
{
int a,b;
cin>>a>>b;
if(a == 0 && abs(b) != 0)
cout<<0;
if(b == 0)
cout<<"INVALID";
else
{
int s = a / UCLN(a,b);
int p = b / UCLN(a,b);
if(abs(p) != 1)
{
if(a > 0 && b > 0)
cout<<s<<" "<<p;
else if(a < 0 && b < 0)
cout<<abs(s)<<" "<<abs(p);
else if(a < 0 || b < 0)
cout<<"-"<<abs(s)<<" "<<abs(p);
}
if(abs(p) == 1 && a != 0)
{
if(a > 0 && b > 0)
cout<<s;
else if(a < 0 && b < 0)
cout<<abs(s);
else if(a < 0 || b < 0)
cout<<"-"<<abs(s);
}
}
return 0;
}