693 Finite Sequence Generator.sf 413 B

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/ruby
  2. # Finite Sequence Generator
  3. # https://projecteuler.net/problem=693
  4. func l(x,y) {
  5. var a = y
  6. var count = 1
  7. for z in (x..Inf) {
  8. a = powmod(a, 2, z)
  9. ++count
  10. if (a <= 1) {
  11. break
  12. }
  13. }
  14. count
  15. }
  16. func g(x) {
  17. 1..^x -> map {|y| l(x,y) }.max
  18. }
  19. func f(n) {
  20. 1..n -> flip.map { |x| g(x) }.max
  21. }
  22. say l(5,3)
  23. say g(5)
  24. #say f(50)
  25. say f(100)