Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Tính giai thừa n (n!) theo số nguyên tố

  1. #1
    Ngày gia nhập
    01 2007
    Bài viết
    3

    Smile Tính giai thừa n (n!) theo số nguyên tố

    Cho một số nguyên dương N<=1000.Hãy tìm biểu diễn số N! dưới dạng số lần xuất hiện các số nguyên tố trong phân tích số N! ra thừa số nguyên tố
    Ví dụ :
    INPUT
    10
    OUTPUT
    8 4 2 1
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    N <= 1000 chọn N = 100 => N! = ???
    None!

  3. #3
    Ngày gia nhập
    02 2007
    Nơi ở
    TP.HCM - dưới cầu SG
    Bài viết
    12

    "N <= 1000 chọn N = 100 => N! = ???" <- có lẽ bạn đã hiểu lầm ý cùa phamtuanic. Ở đây, đâu nhất thiết phải tính ra N!, chỉ cần phân tích số N! thành các số nguyên tố thôi
    Theo mình thấy đây là vấn đề ko khó, có thể giải như sau:
    Xét 1 số nguyên dương k >=3.
    + Dùng 1 mảng để chứa các số nguyên tố < k ( ko kể 1 ) và 1 mảng thứ 2 tương ứng với mảng 1 để chứa số lần xuất hiện của các số nguyên tố này trong N! ( chẳng hạn N = 10 như trên thì mảng 2 chứa các số 8, 4, 2, 1 để sau đó xuất ra )
    + Lúc đầu mảng 2 = { 0 }.
    + Gán mang1[ 0 ] = 2 và mang1[0] = 1; // số nguyên tố đầu tiên
    - Ta phân tích k ra các thừa số nguyên tố bằng cách lần lượt kiểm tra k% mang1[ i ], nếu chia hết thì tăng mang2[ i ] thêm 1 và lấy thương của phép chia làm tiếp.
    - Nếu k là nguyên tố thì mang1[ số phần tử ++ ] = k và trong mang2 tương ứng là 1 ( chẳng qua là ta thêm số nguyên tố k này vào mang1 và mang2 )

    Từ giải thuật trên, cứ duyệt từ 3 -> N là xong. Chú ý, khi ta tăng k lên, ta phải xóa hết mang2 thành 0.
    Ở đây mình làm theo kiểu "cuốn chiếu" tức là đồng thời xét k và xem k có nguyên tố ko để còn thêm nó vào 2 mảng. Hoặc bạn cũng có thể tìm tất cả các số nguyên tố < N rồi sau đó mới đi phân tích từng thừa số trong N!
    Hi vọng ý kiến cùa mình có thể giúp bạn. Thân!
    Nơi nào khiến anh dừng bước, nơi đó có em.

  4. #4
    Ngày gia nhập
    01 2007
    Bài viết
    3

    thanks!!đã góp ý
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

Các đề tài tương tự

  1. Lập trình C Giải thuật đệ quy tính tổng các phần tử chẵn trong 1 số nguyên lớn
    Gửi bởi hothanhha2811 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 9
    Bài viết cuối: 22-05-2013, 08:22 PM
  2. Tài liệu | Phân tích giải thuật định hướng xây dựng lớp số nguyên lớn.
    Gửi bởi chocolate1146 trong diễn đàn Công cụ, ebooks C#, ASP.NET, và Windows Mobile
    Trả lời: 6
    Bài viết cuối: 19-10-2009, 05:12 PM
  3. sắp xêp danh sách tăng dần theo giai thuật vun đống........
    Gửi bởi ngocnam_it trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 16-10-2008, 09:06 PM
  4. [ Solved ]Giải thuật sắp xếp mảng theo chữ N
    Gửi bởi warlock153 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 07-09-2008, 12:25 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn