Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. pub fn recursive(pset: &mut PrimeSet, product: u32) {
  2. for i in (0..).map(|i| p {
  3. let p = nth(pset, i);
  4. let a = p as u32 * product;
  5. if a > 40 {
  6. return;
  7. } else {
  8. recursive(pset, a);
  9. }
  10. }
  11. }
  12.  
  13. fn nth(pset: &mut PrimeSet, n: usize) -> u64 {
  14. let len = pset.len();
  15. if len > n {
  16. pset.list()[n]
  17. } else {
  18. pset.generator().nth(n - len).unwrap()
  19. }
  20. }
  21.  
  22. // stubs
  23. pub struct PrimeSet;
  24. pub struct PrimeSetIter<'a>(std::marker::PhantomData<&'a mut ()>);
  25. impl<'a> Iterator for PrimeSetIter<'a> {
  26. type Item = u64;
  27. fn next(&mut self) -> Option<u64> {
  28. Some(2)
  29. }
  30. }
  31.  
  32. impl PrimeSet {
  33. pub fn iter<'a>(&'a mut self) -> PrimeSetIter<'a> {
  34. PrimeSetIter(std::marker::PhantomData)
  35. }
  36.  
  37. pub fn list(&self) -> &[u64] {
  38. &[]
  39. }
  40.  
  41. pub fn len(&self) -> usize {
  42. self.list().len()
  43. }
  44.  
  45. pub fn generator<'a>(&'a mut self) -> PrimeSetIter<'a> {
  46. PrimeSetIter(std::marker::PhantomData)
  47. }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement