Viết code ngắn gọn tìm số nguyên tố trong Ruby
TIL
500
Ruby
106
White

nguyenduyhao1111 viết ngày 13/10/2016

Nay tâm trạng "stress" nên ngồi mò lại chơi mấy bài dễ cho có động lực . Ví dụ bài vấn đề thứ 7 trong project Euler về số nguyên tố.
Hãy in ra số nguyên tố thứ 10001
Cách làm rất đơn gỉan dễ nhớ mà chạy nhanh.

require 'mathn'
def found(n)
  primes = Prime.new
  n.times { primes.next }
  return primes.next
end

Còn cách thông thường như sau implement từ phương pháp sàng Eratosthenes

class Prime
  def initialize(max_range,dest)
    @hash = {}
    @dest = dest
    (2..max_range).each do |i|
      @hash[i] = i
    end
  end
  def solution
    index = 0
    item = 2
    result = 0
    loop do
      i = 0
      @hash.each{|k, v|
        i += item
        @hash.delete(i) if @hash[i]
      }
      return result if index == @dest
      return "Not found in 2..range #{max_range}" if @hash.empty?
      item = @hash.first[0]
      index += 1
      result = item
    end
  end
end

Để kiểm tra số nguyên tố thứ n : https://primes.utm.edu/nthprime/algorithm.php
nguyenduyhao1111 13-10-2016

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

nguyenduyhao1111

11 bài viết.
37 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
15 2
Mở đầu Khi bạn đi sâu vào thế giới linux , bạn tìm thấy nhiều điều khó có thể hiểu ngay lập tức. Và 1 trong những thứ này là khái niệm socket. Tô...
nguyenduyhao1111 viết hơn 1 năm trước
15 2
White
12 0
Trước khi so sánh khác nhau về HDFS và HDFS2. Chúng ta đi tìm hiểu về HDFS là cái gì, kiến trúc thế nào? Vì sao điều này lại quan trọng. Bởi vì đâ...
nguyenduyhao1111 viết hơn 1 năm trước
12 0
White
10 0
Hadoop là cái gì vậy? “Hadoop là một framework nguồn mở viết bằng Java cho phép phát triển các ứng dụng phân tán có cường độ dữ liệu lớn một cách ...
nguyenduyhao1111 viết hơn 1 năm trước
10 0
Bài viết liên quan
White
18 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết hơn 1 năm trước
18 1
White
1 1
Chào mọi người, hôm nay mình viết một bài TIL nhỏ về cách lấy độ phân giải của màn hình hiện tại đang sử dụng. xdpyinfo | grep dimensions Kết quả...
namtx viết 7 tháng trước
1 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
11 bài viết.
37 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!