adds solutions for problems 38 and 39
							parent
							
								
									3c91e1fb8f
								
							
						
					
					
						commit
						22af3e98b1
					
				|  | @ -0,0 +1,22 @@ | ||||||
|  | def pandigital?(n) | ||||||
|  |   n.to_s.split('').map(&:to_i).sort == [1,2,3,4,5,6,7,8,9] | ||||||
|  | end | ||||||
|  | 
 | ||||||
|  | def largest_pandigital_composition_up_to(n) | ||||||
|  |   largest_pandigital = 1 | ||||||
|  | 
 | ||||||
|  |   (2..n).each do |i| | ||||||
|  |     digit_list = [] | ||||||
|  |     multiplier = 1 | ||||||
|  |     until digit_list.length >= 9 | ||||||
|  |       digit_list += (i * multiplier).to_s.split('').map(&:to_i) | ||||||
|  |       multiplier += 1 | ||||||
|  |     end | ||||||
|  |     number = digit_list.join('').to_i | ||||||
|  |     if pandigital?(number) | ||||||
|  |       largest_pandigital = number if number > largest_pandigital | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   largest_pandigital | ||||||
|  | end | ||||||
|  | @ -0,0 +1,31 @@ | ||||||
|  | def is_right_triangle?(a, b, c) | ||||||
|  |   a ** 2 + b ** 2 == c ** 2 | ||||||
|  | end | ||||||
|  | 
 | ||||||
|  | def generate_triangle_sides(perimeter) | ||||||
|  |   triangles = [] | ||||||
|  |   (1..perimeter).each do |i| | ||||||
|  |     (i..perimeter-i).each do |j| | ||||||
|  |       triangles << [i, j, perimeter-i-j] | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |   triangles | ||||||
|  | end | ||||||
|  | 
 | ||||||
|  | def integer_right_triangle_solutions(perimeter) | ||||||
|  |   triangles = generate_triangle_sides(perimeter) | ||||||
|  |   triangles.select { |x| is_right_triangle?(x[0], x[1], x[2]) } | ||||||
|  | end | ||||||
|  | 
 | ||||||
|  | def p_with_max_solution_count_up_to(n) | ||||||
|  |   max_solution_count = 0 | ||||||
|  |   p = 2 | ||||||
|  |   (3..n).each do |i| | ||||||
|  |     solution_count = integer_right_triangle_solutions(i).count | ||||||
|  |     if solution_count > max_solution_count | ||||||
|  |       max_solution_count = solution_count | ||||||
|  |       p = i | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |   p | ||||||
|  | end | ||||||
		Loading…
	
		Reference in New Issue