-
How to run the test suite
ruby -Itest tests/all_tests.rb
-
How to run the service from irb
require './primes.rb'
require './print_grid.rb'
Primes.new.process(50)
=> [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
puts PrintGrid.new.process(4)
| | 2 | 3 | 5 | 7 | | 2 | 4 | 6 | 10 | 14 | | 3 | 6 | 9 | 15 | 21 | | 5 | 10 | 15 | 25 | 35 | | 7 | 14 | 21 | 35 | 49 |
-
What I'm pleased with
- The modular approach the code was built
-
What would I do if I had more time?
- Implement memoization/caching for prime calculation and grid building
-
Overall thought process
-
(0) Find optimal algorithm
- Sqrt method T(n) = O(√ n) S(n) = S(n)
- Recursion T(n) = O(n) S(n) = S(n)
- Fermat's Theorem T(n) = O(n) S(n) = S(n) Interesting case here. If the problem was to strictly find the the prime number, then we could find the solution in O(1) using this algorithm, but since we are concerned with the grid of numbers up to n, this doesn't help us much.
- Sieve of Eratosthenes T(n) = O(n*log(log(n))) S(n) = O(n) https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
-
(1) Implement algorithm
-
(2) Print (n+1)X(n+1) grid of numbers
-
(3)
Memoize values, so that we don't redo the work when multiple calls are made❌
-
-
Notifications
You must be signed in to change notification settings - Fork 0
rickreyhsig/prime_tables_ruby
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published