fork(1) download
  1. import math
  2.  
  3. def floor_log(num, base):
  4. if num < 0:
  5. raise ValueError("Non-negative number only.")
  6.  
  7. if num == 0:
  8. return 0
  9.  
  10. return base ** int(math.log(num, base))
  11.  
  12. def floor_logx(num, base):
  13.  
  14. if num < 0:
  15. raise ValueError("Non-negative number only.")
  16.  
  17. if num == 0:
  18. return 0
  19.  
  20. exponent = 0
  21. while num >= base:
  22. num = int (num / base)
  23. exponent += 1
  24. return base ** exponent
  25.  
  26. for x in range(0, 100):
  27.  
  28. print("X {0} gives {1} and {2}".format(x, floor_log(x, 2), floor_logx(x, 2)))
  29.  
Success #stdin #stdout 0.01s 8968KB
stdin
Standard input is empty
stdout
X 0 gives 0 and 0
X 1 gives 1 and 1
X 2 gives 2 and 2
X 3 gives 2 and 2
X 4 gives 4 and 4
X 5 gives 4 and 4
X 6 gives 4 and 4
X 7 gives 4 and 4
X 8 gives 8 and 8
X 9 gives 8 and 8
X 10 gives 8 and 8
X 11 gives 8 and 8
X 12 gives 8 and 8
X 13 gives 8 and 8
X 14 gives 8 and 8
X 15 gives 8 and 8
X 16 gives 16 and 16
X 17 gives 16 and 16
X 18 gives 16 and 16
X 19 gives 16 and 16
X 20 gives 16 and 16
X 21 gives 16 and 16
X 22 gives 16 and 16
X 23 gives 16 and 16
X 24 gives 16 and 16
X 25 gives 16 and 16
X 26 gives 16 and 16
X 27 gives 16 and 16
X 28 gives 16 and 16
X 29 gives 16 and 16
X 30 gives 16 and 16
X 31 gives 16 and 16
X 32 gives 32 and 32
X 33 gives 32 and 32
X 34 gives 32 and 32
X 35 gives 32 and 32
X 36 gives 32 and 32
X 37 gives 32 and 32
X 38 gives 32 and 32
X 39 gives 32 and 32
X 40 gives 32 and 32
X 41 gives 32 and 32
X 42 gives 32 and 32
X 43 gives 32 and 32
X 44 gives 32 and 32
X 45 gives 32 and 32
X 46 gives 32 and 32
X 47 gives 32 and 32
X 48 gives 32 and 32
X 49 gives 32 and 32
X 50 gives 32 and 32
X 51 gives 32 and 32
X 52 gives 32 and 32
X 53 gives 32 and 32
X 54 gives 32 and 32
X 55 gives 32 and 32
X 56 gives 32 and 32
X 57 gives 32 and 32
X 58 gives 32 and 32
X 59 gives 32 and 32
X 60 gives 32 and 32
X 61 gives 32 and 32
X 62 gives 32 and 32
X 63 gives 32 and 32
X 64 gives 64 and 64
X 65 gives 64 and 64
X 66 gives 64 and 64
X 67 gives 64 and 64
X 68 gives 64 and 64
X 69 gives 64 and 64
X 70 gives 64 and 64
X 71 gives 64 and 64
X 72 gives 64 and 64
X 73 gives 64 and 64
X 74 gives 64 and 64
X 75 gives 64 and 64
X 76 gives 64 and 64
X 77 gives 64 and 64
X 78 gives 64 and 64
X 79 gives 64 and 64
X 80 gives 64 and 64
X 81 gives 64 and 64
X 82 gives 64 and 64
X 83 gives 64 and 64
X 84 gives 64 and 64
X 85 gives 64 and 64
X 86 gives 64 and 64
X 87 gives 64 and 64
X 88 gives 64 and 64
X 89 gives 64 and 64
X 90 gives 64 and 64
X 91 gives 64 and 64
X 92 gives 64 and 64
X 93 gives 64 and 64
X 94 gives 64 and 64
X 95 gives 64 and 64
X 96 gives 64 and 64
X 97 gives 64 and 64
X 98 gives 64 and 64
X 99 gives 64 and 64