5 more solutions
							parent
							
								
									91c02fef43
								
							
						
					
					
						commit
						786860f59f
					
				|  | @ -0,0 +1,5 @@ | |||
| require 'prime' | ||||
| 
 | ||||
| def solution_up_to(n) | ||||
|   (1..n).map { |x| Prime.prime_division(x).count }.each_cons(4).find_index { |x| x.all? { |y| y == 4} } + 1 | ||||
| end | ||||
|  | @ -0,0 +1,3 @@ | |||
| def series(n) | ||||
|   (1..n).map { |x| x ** x }.inject(:+) | ||||
| end | ||||
|  | @ -0,0 +1,23 @@ | |||
| require 'prime' | ||||
| 
 | ||||
| def four_digit_increasing_by(n) | ||||
|   return [] if (9999 - (2*n)) < 0 | ||||
|   solutions = [] | ||||
|   (1..(9999 - (2*n))).each do |x| | ||||
|     solutions << [x, x + n, x + (2 * n)] | ||||
|   end | ||||
|   solutions | ||||
| end | ||||
| 
 | ||||
| def to_digit_list(num) | ||||
|   num.to_s.split('').map(&:to_i) | ||||
| end | ||||
| 
 | ||||
| def permutations?(number_list) | ||||
|   comparison_digit_list = to_digit_list(number_list.first).sort | ||||
|   number_list.all? { |x| to_digit_list(x).sort == comparison_digit_list } | ||||
| end | ||||
| 
 | ||||
| def find_prime_permutations(n) | ||||
|   four_digit_increasing_by(n).select { |x| permutations?(x) }.select { |x| x.all? { |y| Prime.prime?(y) } } | ||||
| end | ||||
|  | @ -0,0 +1,22 @@ | |||
| require 'prime' | ||||
| 
 | ||||
| def longest_sum_of_consecutive_primes_beneath(n) | ||||
|   sum = 0 | ||||
|   primes = Prime.take_while { |x| (sum += x) < n } | ||||
|   longest_prime_count = 0 | ||||
|   longest_prime_sum = 0 | ||||
|   prime_list = [] | ||||
|   (1..primes.count).each do |x| | ||||
|     primes.each_cons(x) do |y| | ||||
|       subcount = y.inject(:+) | ||||
|       if Prime.prime?(subcount) | ||||
|         if y.count > longest_prime_count | ||||
|           longest_prime_sum = subcount | ||||
|           longest_prime_count = y.count | ||||
|           prime_list = y | ||||
|         end | ||||
|       end | ||||
|     end | ||||
|   end | ||||
|   [prime_list, longest_prime_sum] | ||||
| end | ||||
|  | @ -0,0 +1,28 @@ | |||
| def permutations?(number_list) | ||||
|   comparison_digit_list = to_digit_list(number_list.first).sort | ||||
|   number_list.all? { |x| to_digit_list(x).sort == comparison_digit_list } | ||||
| end | ||||
| 
 | ||||
| def six_multiples(x) | ||||
|   [x, 2 * x, 3 * x, 4 * x, 5 * x, 6 * x] | ||||
| end | ||||
| 
 | ||||
| def infinite_series | ||||
|   Enumerator.new do |y| | ||||
|     n = 1 | ||||
|     loop do | ||||
|       y << n | ||||
|       n += 1 | ||||
|     end | ||||
|   end | ||||
| end | ||||
| 
 | ||||
| def same_digit_six_multiples | ||||
|   series = infinite_series | ||||
|   n = series.next | ||||
|   loop do | ||||
|     result = permutations?(six_multiples(n)) | ||||
|     return six_multiples(n) if result | ||||
|     n = series.next | ||||
|   end | ||||
| end | ||||
		Loading…
	
		Reference in New Issue