Advertisement
Guest User

Untitled

a guest
Jan 29th, 2015
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.42 KB | None | 0 0
  1. function factor{T<:Integer}(n::T)
  2. 0 < n || error("number to be factored must be positive")
  3. h = Dict{T,Int}()
  4. n == 1 && return h
  5. local s::T, p::T
  6. s = isqrt(n)
  7. p = 2
  8. while p <= s
  9. if n % p == 0
  10. while n % p == 0
  11. h[p] = get(h,p,0) + 1
  12. n = div(n,p)
  13. end
  14. s = isqrt(n)
  15. end
  16. p += (p==2 ? 1 : 2)
  17. end
  18. return h
  19. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement