Data update
This commit is contained in:
parent
8f05c7136f
commit
0bf4da02c3
82 changed files with 2194 additions and 118 deletions
23
Task/Achilles-numbers/Ruby/achilles-numbers.rb
Normal file
23
Task/Achilles-numbers/Ruby/achilles-numbers.rb
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
require 'prime'
|
||||
|
||||
def achilles?(n)
|
||||
exponents = n.prime_division.map(&:last)
|
||||
exponents.none?(1) && exponents.inject(&:gcd) == 1
|
||||
end
|
||||
|
||||
def 𝜑(n)
|
||||
n.prime_division.inject(1){|res, (pr, exp)| res * (pr-1) * pr**(exp-1) }
|
||||
end
|
||||
|
||||
achilleses = (2..).lazy.select{|n| achilles?(n) }
|
||||
|
||||
n = 50
|
||||
puts "First #{n} Achilles numbers:"
|
||||
achilleses.first(n).each_slice(10){|s| puts "%9d"*s.size % s}
|
||||
|
||||
puts "\nFirst #{n} strong Achilles numbers:"
|
||||
achilleses.select{|ach| achilles?(𝜑(ach)) }.first(n).each_slice(10){|s| puts "%9d"*s.size % s }
|
||||
|
||||
puts
|
||||
counts = achilleses.take_while{|ach| ach < 1000000}.map{|a| a.digits.size }.tally
|
||||
counts.each{|k, v| puts "#{k} digits: #{v}" }
|
||||
Loading…
Add table
Add a link
Reference in a new issue