Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: [Solved] Kiểm tra 1 số nguyên tố

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

    Mặc định [Solved] Kiểm tra 1 số nguyên tố

    Nhờ các bạn sửa giùm mình, kiểm tra n có là số nguyên tố hay ko.
    Code:
    #include<stdio.h>
    #include<conio.h>
    void main()
    {
    unsigned int i,n;
    printf("\n Nhap vao 1 so nguyen duong n=");
    scanf("%u",&n);
    if(n==2)printf("\n n la so nguyen to");
    else
     if(n%2==0)printf("\n n khong la so nguyen to");
     else
      { 
       i=3;
       while((i<n)&&((n%i)!=0))
       i++;
       if(i>=n) printf("\n n la so nguyen to");
         else printf("\n n khong la so nguyen to");
      }
    getch();
    }
    Đã được chỉnh sửa lần cuối bởi Michael : 23-10-2008 lúc 06:36 PM.

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

    Nói giải thuật cho tui nghe đi, rồi tui sữa cho ?

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

    mình nghĩ thuật giải của bạn đó là như vậy nè.
    - những số nào là chẵn trừ 2 đều là thi không phải là nguyên tố.
    - kiểm tra nhưng số lẻ còn lại.
    - cho i=3 -> n-1; n%i!=0,i++
    - nếu i>=n. n là số nguyên tố.

    mình ra tiệm net. hổng mang theo bolandc nên không chạy thử được .
    mà thấy đọc code cũng đâu sai đâu.

  4. #4
    Ngày gia nhập
    09 2008
    Bài viết
    2

    Mình sửa được rồi, thanks!

  5. #5
    Ngày gia nhập
    10 2008
    Bài viết
    18

    Số nguyên tố là số chỉ chia được cho 1 và chính nó.
    Bạn chỉ cần dùng một vòng lặp kiểm tra điều kiện là xong.
    Chú ý hạn chế vòng lặp.
    Ví dụ: Muốn biết N có phải là số nguyên tố hay không ta chỉ cần kiểm tra xem nó chia hết đến N/2 thôi. Như thế đỡ mất thời gian...

  6. #6
    Ngày gia nhập
    10 2008
    Bài viết
    5

    Mặc định [Solved] Kiểm tra 1 số nguyên tố

    Trích dẫn Nguyên bản được gửi bởi tsandtm Xem bài viết
    Số nguyên tố là số chỉ chia được cho 1 và chính nó.
    Bạn chỉ cần dùng một vòng lặp kiểm tra điều kiện là xong.
    Chú ý hạn chế vòng lặp.
    Ví dụ: Muốn biết N có phải là số nguyên tố hay không ta chỉ cần kiểm tra xem nó chia hết đến N/2 thôi. Như thế đỡ mất thời gian...
    Tớ nhớ không nhầm thì trước tớ làm là kiểm tra xem nó chia hết đến căn bậc 2 của N thôi thì phải ??? Đỡ mất thời gian hơn N/2 ^^

  7. #7
    Ngày gia nhập
    09 2008
    Bài viết
    2

    tôi xin đề ra một giải thuật!! sẽ kiểm tra được mọi trường hợp!!
    mọi người dùng thử và cho ý kiến!!
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3.  
    4.  
    5. int songuyento(int n)
    6. {
    7. int i;
    8. if(n<2) return 0;
    9.       for(i=2;i<n;i++)
    10.        if(n%i==0) return 0;
    11. return 1;
    12. }
    13.  
    14. void main()
    15. {
    16. int i,n;
    17. printf(" Nhap n="); scanf("%d",&n);
    18. for(i=0;i<n;i++) {
    19. if(songuyento(n)) printf(" N la so nguyen to!!");
    20. else
    21. printf(" N khong phai la so nguyen to!!");
    22.   }
    23. getch();
    24. }

    *Chú ý: Bỏ code vào thẻ tag code, nếu bạn chưa biết thì vui lòng kéo lên trên xem hướng dẫn.
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 24-10-2008 lúc 06:31 PM.

  8. #8
    Ngày gia nhập
    10 2008
    Bài viết
    18

    Trích dẫn Nguyên bản được gửi bởi asahi Xem bài viết
    Tớ nhớ không nhầm thì trước tớ làm là kiểm tra xem nó chia hết đến căn bậc 2 của N thôi thì phải ??? Đỡ mất thời gian hơn N/2 ^^
    Ờ đúng rồi. Mình lâu lắm rồi không đụng đến toán tin nên cũng wên mất Thanks!

    Mình mới học C++
    hqgk48 sẵn tiện cho mình hỏi lệnh return 0 và return 1 là làm cái gì vậy.
    Mình đọc tài liều nó không có hướng dẫn. Thank's trước nha.
    Đã được chỉnh sửa lần cuối bởi tsandtm : 24-10-2008 lúc 05:43 PM. Lý do: thiếu nội dung.

  9. #9
    Ngày gia nhập
    06 2008
    Bài viết
    25

    Mới học lập trình thì kiểm tra từ 2 đến n-1 như hqgk48 cho nó dễ hiểu. Cần gì n/2 với lại căn n

    Trích dẫn Nguyên bản được gửi bởi tsandtm Xem bài viết
    Ờ đúng rồi. Mình lâu lắm rồi không đụng đến toán tin nên cũng wên mất Thanks!

    Mình mới học C++
    hqgk48 sẵn tiện cho mình hỏi lệnh return 0 và return 1 là làm cái gì vậy.
    Mình đọc tài liều nó không có hướng dẫn. Thank's trước nha.
    return giá trị nào thì sau khi hàm chạy xong nó sẽ trả về giá trị đó.
    Đọc đoạn code thì sẽ hiểu là nếu n là sẽ nguyên tố thì hàm này trả về 1, nếu ko fải thì sẽ trả về 0.

    if(songuyento(n))

    tương đương với

    if(songuyento(n) > 0)

  10. #10
    Ngày gia nhập
    10 2008
    Bài viết
    2

    Trích dẫn Nguyên bản được gửi bởi hqgk48 Xem bài viết
    tôi xin đề ra một giải thuật!! sẽ kiểm tra được mọi trường hợp!!
    mọi người dùng thử và cho ý kiến!!
    C Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3.  
    4.  
    5. int songuyento(int n)
    6. {
    7. int i;
    8. if(n<2) return 0;
    9.       for(i=2;i<n;i++)
    10.        if(n%i==0) return 0;
    11. return 1;
    12. }
    13.  
    14. void main()
    15. {
    16. int i,n;
    17. printf(" Nhap n="); scanf("%d",&n);
    18. for(i=0;i<n;i++) {
    19. if(songuyento(n)) printf(" N la so nguyen to!!");
    20. else
    21. printf(" N khong phai la so nguyen to!!");
    22.   }
    23. getch();
    24. }

    *Chú ý: Bỏ code vào thẻ tag code, nếu bạn chưa biết thì vui lòng kéo lên trên xem hướng dẫn.
    nhưng n=2 cũng là số nguyên tố mà!

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

  1. [ Solved ]Lỗi trong đoạn code kiểm tra số nguyên tố bằng hàm
    Gửi bởi zodjac1990 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 09-11-2008, 06:55 PM
  2. [ Solved ]Tìm số nguyên tố!!!!
    Gửi bởi Thanhlong_68 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 15-10-2008, 10:36 PM
  3. [ Solved ]Tìm các số nguyên tố vượt quá phạm vi biểu diễn cua C
    Gửi bởi bavuong_1203 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 15
    Bài viết cuối: 07-10-2008, 11:12 PM
  4. [ Solved ]Bài toán chỉ ra 1 chữ số bất kỳ trong dạy số nguyên tố
    Gửi bởi 1st | Kylin trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 03-06-2008, 08:10 PM
  5. [ Solved ]Số nguyên tố lớn
    Gửi bởi nthung trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 11-03-2008, 08:57 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