Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.48 KB | None | 0 0
  1.  
  2. // python:
  3. def factors(n):
  4. for p in primes():
  5. k = 0
  6. while n % (p**(k+1)) == 0: k += 1
  7. if k > 0: yield (p, k)
  8.  
  9. // rust??
  10. fn factors(n: u64) -> std::iter::Map<u64, u64> {
  11. let cur = Cell::new(n);
  12. primes()
  13. .take_while(|&p| p <= cur.get())
  14. .filter(|p| cur.get() % p == 0)
  15. .map(|&p| (1..cur.get())
  16. .take_while(|&k| cur.get() % p.pow(k) == 0)
  17. .max()
  18. .map(|&k| (p, k))
  19. .unwrap())
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement