Viết code ngắn gọn tìm số nguyên tố trong Ruby
TIL
633
Ruby
116
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

13 bài viết.
41 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
19 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 gần 2 năm trước
19 2
White
13 0
Khái niệm : Mapreduce là một mô hình lập trình, thực hiện quá tình xử lý tập dữ liệu lớn. Mapreduce gồm 2 pha : map và reduce. Hàm Map : Các xử l...
nguyenduyhao1111 viết 2 năm trước
13 0
White
12 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 2 năm trước
12 0
Bài viết liên quan
White
0 2
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 5 tháng trước
0 2
White
20 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 2 năm trước
20 1
White
9 0
Có một tuyên ngôn cho chủ nghĩa tối giản trong ngành phần mềm. Link: http://minifesto.org/ Fight for Pareto's law, look for the 20% of effort th...
Cẩm Huỳnh viết 2 tháng trước
9 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
13 bài viết.
41 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á!