Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Bismillahir Rahman-ir Rahim
- #include <bits/stdc++.h>
- using namespace std;
- typedef struct {
- int p;
- int q;
- }rational;
- int GCD(int a, int b){
- int temp;
- while(b != 0){
- temp = b;
- b = a % b;
- a = temp;
- }
- return a;
- }
- int LCM(int a, int b){
- int gcd = GCD(a, b);
- int lcm = a*b / gcd;
- return lcm;
- }
- void addition (rational *s1, rational *s2, rational *s3)
- {
- s3 -> q = LCM(s1 -> q, s2 -> q);
- s3 -> p = (s1 -> p)*(s3 -> q / s1 -> q) + (s2 -> p)*(s3 -> q / s2 -> q);
- }
- void substraction (rational *s1, rational *s2, rational *s3)
- {
- s3 -> q = LCM(s1 -> q, s2 -> q);
- s3 -> p = (s1 -> p)*(s3 -> q / s1 -> q) - (s2 -> p)*(s3 -> q / s2 -> q);
- }
- void multiply (rational *s1, rational *s2, rational *s3)
- {
- s3 -> p = (s1 -> p)*(s2 -> p);
- s3 -> q = (s1 -> q)*(s2 -> q);
- int gcd = GCD(s3 -> p, s3 -> q);
- s3 -> p = (s3 -> p)/gcd;
- s3 -> q = (s3 -> q)/gcd;
- }
- void divide (rational *s1, rational *s2, rational *s3)
- {
- s3 -> p = (s1 -> p)*(s2 -> q);
- s3 -> q = (s1 -> q)*(s2 -> p);
- int gcd = GCD(s3 -> p, s3 -> q);
- s3 -> p = (s3 -> p)/gcd;
- s3 -> q = (s3 -> q)/gcd;
- }
- int main()
- {
- //freopen("input.txt", "r", stdin);
- //freopen("output.txt", "w", stdout);
- rational r1, r2, r3;
- r1.p = 6;
- r1.q = 4;
- r2.p = 2;
- r2.q = 4;
- divide(&r1, &r2, &r3);
- cout << r3.p<<"/"<<r3.q << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement