fork download
  1. fn main() {
  2. let x: i64 = -3;
  3. let a = x.abs();
  4. println!("a = {}", a);
  5. let p = 12;
  6. let q = 18;
  7. let g = {
  8. fn gcd(x: i64, y: i64) -> i64 {
  9. if y == 0 {
  10. x
  11. } else {
  12. gcd(y, x % y)
  13. }
  14. }
  15. gcd(p, q)
  16. };
  17. println!("g = {}", g);
  18. let n = 3;
  19. let z = q.pow(n);
  20. println!("z = {}", z);
  21. let r = {
  22. fn mod_pow(x: i64, y: i64, z: i64) -> i64 {
  23. if y == 0 {
  24. 1
  25. } else {
  26. let h = mod_pow(x, y / 2, z);
  27. let res = (h * h) % z;
  28. if y % 2 == 0 {
  29. res
  30. } else {
  31. (res * x) % z
  32. }
  33. }
  34. }
  35. mod_pow(q, 1_000_000_005, 1_000_000_007)
  36. };
  37. println!("r = {}", r);
  38. let s = (q as f64).sqrt();
  39. println!("s = {}", s);
  40. }
  41.  
Success #stdin #stdout 0s 4408KB
stdin
Standard input is empty
stdout
a = 3
g = 6
z = 5832
r = 55555556
s = 4.242640687119285