169 Exploring the number of different ways a number can be expressed as a sum of powers of 2 -- v2.sf 396 B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/ruby
  2. # Author: Trizen
  3. # Date 18 March 2022
  4. # https://github.com/trizen
  5. # https://projecteuler.net/problem=169
  6. # Runtime: 0.249s
  7. func fusc(n) {
  8. var (a=1, b=0)
  9. if (n.is_even) {
  10. n.remove!(2)
  11. }
  12. for bit in (n.bits) {
  13. if (bit) {
  14. b += a
  15. }
  16. else {
  17. a += b
  18. }
  19. }
  20. return b
  21. }
  22. say fusc(10**25 + 1)