fork download
  1. import std.stdio;
  2. import std.typecons;
  3.  
  4. int gcd(int a, int b) {
  5. auto t = tuple(a, b);
  6. while(t[1] > 0) {
  7. t = tuple(t[1], t[0]%t[1]);
  8. }
  9. return t[0];
  10. }
  11.  
  12. Tuple!(int, int) simplifyFrac(int a, int b) {
  13. int d = gcd(a, b);
  14. return tuple(a/d, b/d);
  15. }
  16.  
  17. void main()
  18. {
  19. writeln([simplifyFrac(4, 8)[]]);
  20. writeln([simplifyFrac(1536, 78360)[]]);
  21. writeln([simplifyFrac(51478, 5536)[]]);
  22. writeln([simplifyFrac(46410, 119340)[]]);
  23. writeln([simplifyFrac(7673, 4729)[]]);
  24. writeln([simplifyFrac(4096, 1024)[]]);
  25. }
Success #stdin #stdout 0s 3784KB
stdin
Standard input is empty
stdout
[1, 2]
[64, 3265]
[25739, 2768]
[7, 18]
[7673, 4729]
[4, 1]