-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathp051-primereplacement.rb
More file actions
38 lines (37 loc) · 931 Bytes
/
Copy pathp051-primereplacement.rb
File metadata and controls
38 lines (37 loc) · 931 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
require_relative 'equations'
def generate(ary, idx, target)
if idx==ary.length
if ary.uniq==[nil] ; return [] end
if ary[0]==0 ; return [] end
if !ary.include? nil ; return [] end
solution = []
(0..9).each { |i|
test = ary.clone
test.each_index { |j| if test[j]==nil ; test[j]=i end}
solution.push(test.join.to_i)
}
solution.delete_if { |i| !isPrime(i) }
return solution
end
test = ary.clone
ans = generate(test,idx+1,target)
if ans==(0..9) ; return [] end
if ans.length==target ; return ans end
(0..9).each { |i|
test[idx]=i
ans = generate(test,idx+1,target)
if ans==(0..9) ; return [] end
if ans.length==target ; return ans end
}
end
target = 8
answer = []
digits = 2
until answer.length==target
answer = []
a = Array.new(digits) { nil }
answer = generate(a,0,target)
if answer==(0..9) ; answer = [] end
puts answer
digits += 1
end