Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: [Xin giúp đỡ]: các số nguyên tố trong số N

  1. #1
    Ngày gia nhập
    04 2008
    Bài viết
    1

    Unhappy [Xin giúp đỡ]: các số nguyên tố trong số N

    Chào các bạn, mình mới học C++, mình có bài tập này mong nhận được sự hướng dẫn của các bạn.

    Đề bài: Cho nhập một số N>0, hãy xác định và in ra các số nguyên tố trên số Nguyên tố N đó. Thí dụ 2794: các số nguyên tố là 2 7.

    Mình nghĩ ra giải thuật là, đầu tiên chia số N đó cho 10 và lấy phần dư (tmp=n%10) sau đó, lấy phần dư này đưa vào hàm ngto(tmp) rồi trả về, nếu là số ngt thì in ra. Tiếp tục lấy số n/10 để loại bỏ số vừa chia. Lặp đến hết số n.

    Mình mong các bạn viết dùm mình vòng lặp để làm công việc này. Mình nghĩ mà mà không ra. Cảm ơn rất nhiều.

    hàm xác định số nt:

    PHP Code:
    int ngto(int n)  
    {
        
    int dem=0;
        for (
    int i=1;i<=n;++i)
            if (
    n%i==0)
                
    dem dem 1;
            if ( 
    dem == )
                return 
    1// la so nguyen to
            
    else
                return 
    0// ko phai so nguyen to


  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Ý tưởng đúng rùi.
    Mình mong các bạn viết dùm mình vòng lặp để làm công việc này.
    I wish you didn't say this.
    C++ Code:
    1. int number = 1234;
    2. int digit;
    3. while(number > 0){
    4.  digit = number%10;
    5.  number /= 10;
    6. }

  3. #3
    Ngày gia nhập
    07 2006
    Bài viết
    166

    Bạn không nên chia cho 10 như vậy mà nên chuyển thành xâu rồi tách ra từng kí tự rồi chuyển ngược lại sang số. Có vẻ lòng vòng nhưng cũng chỉ mất vài dòng code, nhưng quan trọng hơn là việc nhân chia hiệu năng không tốt bằng.

  4. #4
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà Nội
    Bài viết
    138

    Trích dẫn Nguyên bản được gửi bởi vinhie47 Xem bài viết
    Bạn không nên chia cho 10 như vậy mà nên chuyển thành xâu rồi tách ra từng kí tự rồi chuyển ngược lại sang số. Có vẻ lòng vòng nhưng cũng chỉ mất vài dòng code, nhưng quan trọng hơn là việc nhân chia hiệu năng không tốt bằng.
    Nếu chuyển sang một chuỗi ký tự (itoa), xét ở bài toán này làm sao hiệu quả chứ?

    Chia 10 tách lấy từng phần tử, và hỏi luôn nó xem có phải là số nguyên tố không? Nếu phải thì giữ nó lại. Dr nghĩ thế hay hơn chứ?
    Tất cả các câu hỏi của thành viên (không vi phạm luật lệ tham gia) gửi vào box Java, Linux nếu không thành viên nào trả lời hỗ trợ trong vòng 24h, ban quản trị sẽ trực tiếp hỗ trợ. Các bạn giới thiệu và loan tin giúp điều này

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Bạn không nên chia cho 10 như vậy mà nên chuyển thành xâu rồi tách ra từng kí tự rồi chuyển ngược lại sang số. Có vẻ lòng vòng nhưng cũng chỉ mất vài dòng code, nhưng quan trọng hơn là việc nhân chia hiệu năng không tốt bằng.
    Tui chưa hiểu ý cậu lắm, nhân chia hiệu năng là sao nhỉ ? Honestly ?
    - Với lại 1 phần do cậu đó hỏi cơ bản, nếu phức tạp thì tui có thể dùng std::string C++, dùng function object lước through container sẽ chắc chắn best performance. Còn hiệu năng thì tui chịu, chẳng hiểu ý nghĩa là gì .

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

  1. Giúp đỡ về xử lý số nguyên lớn trong lập trình java
    Gửi bởi thienbg93 trong diễn đàn Nhập môn lập trình Java
    Trả lời: 6
    Bài viết cuối: 22-09-2013, 04:32 PM
  2. Bài tập C++ giúp mình sửa bài hàm trong số nguyên tố
    Gửi bởi missyoune trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 02-04-2012, 07:40 AM
  3. Tìm số nguyên tố và số hoàn hảo trong lập trình C. Giúp mình với?
    Gửi bởi bigeagle trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 13-03-2011, 10:15 PM
  4. bài kiểm tra số nguyên tố trong pascal. sửa lỗi giúp mình
    Gửi bởi clanvip trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 23-10-2010, 12:22 PM
  5. Code tìm các số nguyên tố trong mảng. Giúp em sửa lỗi?
    Gửi bởi chuong01 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 31-03-2009, 12:16 PM

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