diff --git a/Gemfile b/Gemfile index 77a87d0d..57069f0e 100644 --- a/Gemfile +++ b/Gemfile @@ -4,6 +4,7 @@ source 'https://rubygems.org' gem 'minitest', '5.18.0' gem 'open-uri', '0.3.0' +gem 'prime', '0.1.2' gem 'rake', '12.3.3' gem 'rubocop', '1.7.0' gem 'simplecov', '0.22.0' diff --git a/README.md b/README.md index 046bd977..9740a60b 100644 --- a/README.md +++ b/README.md @@ -533,3 +533,4 @@ Profile on LeetCode: [fartem](https://leetcode.com/fartem/). | 189. Rotate Array | [Link](https://leetcode.com/problems/rotate-array/) | [Link](./lib/medium/189_rotate_array.rb) | [Link](./test/medium/test_189_rotate_array.rb) | | 199. Binary Tree Right Side View | [Link](https://leetcode.com/problems/binary-tree-right-side-view/) | [Link](./lib/medium/199_binary_tree_right_side_view.rb) | [Link](./test/medium/test_199_binary_tree_right_side_view.rb) | | 200. Number of Islands | [Link](https://leetcode.com/problems/number-of-islands/) | [Link](./lib/medium/200_number_of_islands.rb) | [Link](./test/medium/test_200_number_of_islands.rb) | +| 204. Count Primes | [Link](https://leetcode.com/problems/count-primes/) | [Link](./lib/medium/204_count_primes.rb) | [Link](./test/medium/test_204_count_primes.rb) | diff --git a/leetcode-ruby.gemspec b/leetcode-ruby.gemspec index bf6c2578..335321dc 100644 --- a/leetcode-ruby.gemspec +++ b/leetcode-ruby.gemspec @@ -5,7 +5,7 @@ require 'English' ::Gem::Specification.new do |s| s.required_ruby_version = '>= 3.0' s.name = 'leetcode-ruby' - s.version = '6.6.7' + s.version = '6.6.8' s.license = 'MIT' s.files = ::Dir['lib/**/*.rb'] + %w[README.md] s.executable = 'leetcode-ruby' diff --git a/lib/medium/204_count_primes.rb b/lib/medium/204_count_primes.rb new file mode 100644 index 00000000..a08afd4a --- /dev/null +++ b/lib/medium/204_count_primes.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +require 'prime' + +# https://leetcode.com/problems/count-primes/ +# @param {Integer} n +# @return {Integer} +def count_primes(n) = ::Prime.each(n - 1).count diff --git a/test/medium/test_204_count_primes.rb b/test/medium/test_204_count_primes.rb new file mode 100644 index 00000000..25e573bf --- /dev/null +++ b/test/medium/test_204_count_primes.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +require_relative '../test_helper' +require_relative '../../lib/medium/204_count_primes' +require 'minitest/autorun' + +class CountPrimesTest < ::Minitest::Test + def test_default_one = assert_equal(4, count_primes(10)) + + def test_default_two = assert_equal(0, count_primes(0)) + + def test_default_three = assert_equal(0, count_primes(1)) +end