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ố 12 kết quả

Đề tài: Xin giúp sửa code bài tìm số nguyên tố dùm

  1. #1
    Ngày gia nhập
    02 2009
    Bài viết
    0

    Question Xin giúp sửa code bài tìm số nguyên tố dùm

    Đây là bài tìm các số nguyên tố trong khoảng [1,n]:

    Code:
    void main()
    {	int i,j,n,nt;
    	clrscr();
    	printf("Nhap so: ");
    	scanf("%d",&n);
    	for(j=1;j<=n;j++)
    	{   if(j<2)
    	        nt=0;
                else
    	    {   nt=1;
    		for(i=2;i<j;i++);
    		{   if(j%i==0)
                           nt=0
    		       break;
                    }}}
    	
    	if(nt==1)
    	printf("Cac so nguyen to la: %d\n",j);
    	getch();
    }
    Không biết đoạn code trên sai chỗ nào mà sao chạy không ra đúng, ai biết thì xin sửa giúp dùm. Vì mới học nên xin chỉ chỗ sai để sửa, coi để hiểu câu lệnh thôi. Cám ơn rất nhiều.
    Đã được chỉnh sửa lần cuối bởi dkdai : 05-03-2009 lúc 11:40 PM.

  2. #2
    Ngày gia nhập
    11 2008
    Nơi ở
    www.freelancer.com
    Bài viết
    75

    Code:
    void main()
    {	int i,j,n,nt;
    	clrscr();
    	printf("Nhap so: ");
    	scanf("%d",&n);
    	for(j=1;j<=n;j++)
    	{   if(j<2)
    	        nt=0;
                else
    	    {   nt=1;
    		for(i=2;i<j;i++)    /*sau for ko có ; */
    		{   if(j%i==0) 
                          { nt=0 ;     
    		         break;  
                          } 
                    } 
                 }
             }
    	
    	if(nt==1)
    	printf("Cac so nguyen to la: %d\n",j);
    	getch();
    }
    Chú ý cách dùng break nhá
    Hiring someone to help someone else!

  3. #3
    Ngày gia nhập
    03 2009
    Bài viết
    523

    em mới check thử, đến số 10 nó cũng ko chạy?

  4. #4
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Mình nghĩ các bạn nên viết rõ ràng ra các hàm con.
    Code:
    void main()
    {
        int n; 
        printf("Your Number: ");
        scanf("%d",&n);
        if( isPrimeNumber(n) )
           printf("\n%d is a prime number",n);
         else
            printf("\n%d is not a prime number",n);
        
    }
    bool isPrimeNumber(int _x)
    {
       if( x <= 1 )
          return false;
       for(int i = 2; i <= sqrt(_x); ++i)
           if( _x%i == 0 )
              return false;
       return true;
    }
    @ Code tay có thể ko đúng nhưng nguyên tắc là thế

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

    Bạn thử code này xem
    C Code:
    1. #include<stdio.h>
    2. void Nhap_N(int &n)
    3. {
    4.     do{
    5.         printf("\nNhap n > 1 : ");
    6.         scanf ("%d",&n);
    7.         if(n<=1)
    8.             printf("\nNhap sai !");
    9.     }while(n<=1);
    10. }
    11. int KiemTraSoNguyenTo(int n)
    12. {
    13.     int dem=2;
    14.     while(n%dem!=0)
    15.         dem++;
    16.     if(n==dem)
    17.         return 1;
    18.     return 0;
    19. }
    20. void XuatSoNguyenTo(int n)
    21. {
    22.     for(int i=1;i<=n;i++)
    23.         if(KiemTraSoNguyenTo(i))
    24.             printf("\n%2d la so nguyen to",i);
    25. }
    26. void main()
    27. {
    28.     int n;
    29.     Nhap_N(n);
    30.     XuatSoNguyenTo(n);
    31. }

  6. #6
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Mặc định Xin giúp sửa code bài tìm số nguyên tố dùm

    Sửa cái code của chủ topic
    C Code:
    1. void main()
    2. {   int i,j,n,nt;
    3.     clrscr();
    4.     printf("Nhap so: ");
    5.     scanf("%d",&n);
    6.         printf("Cac so nguyen to la: \n");
    7.     for(j=2; j<=n; j++)
    8.     {  
    9.             nt=1;
    10.         for(i=2; i<=j/2; i++) // or sqrt(j);    
    11.               if(j%i==0)
    12.                       { nt=0 ;    
    13.                  break;  
    14.                       }
    15.     if(nt)
    16.     printf("  %d",j);                            
    17.         }
    18.     getch();
    19. }

  7. #7
    Ngày gia nhập
    02 2009
    Bài viết
    0

    @MrChicKen_NAD: đoạn code trên vẫn chưa được, khi mình nhập số vô Enter là nó thoát ra luôn, bạn coi lại dùm mình với.

    @basilisk, QuangHoang: cám ơn 2 bạn đã code giúp nhưng mà mình muốn hiểu cái code, những câu lệnh for để chạy cái bài của mình kìa, vì mới học nên không hiểu lệnh cho lắm, tại sao dùng vậy, học cái môn C này khó thiệt nhưng mà cũng phải ráng thôi

    Cám ơn mọi người rất nhiều.

  8. #8
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Bài của QuangHoang làm rất đúng, nếu bạn chưa hiểu thì mình giải thích đôi chút cho bạn nè :
    Trích dẫn Nguyên bản được gửi bởi QuangHoang Xem bài viết
    Sửa cái code của chủ topic
    C Code:
    1. void main()
    2. {   int i,j,n,nt;
    3.     clrscr();
    4.     printf("Nhap so: ");
    5.     scanf("%d",&n);
    6.         printf("Cac so nguyen to la: \n");
    7.     for(j=2; j<=n; j++)   [COLOR="Red"]/////////////// Cho vòng lặp chạy từ 2->n  /////////[/COLOR]
    8.     {  
    9.             nt=1;           [COLOR="Red"]////////////  giá trị của nt là đúng nếu =1, sai nếu  =0 (tức là nguyên tố là 1, hợp số là 0 ///////////[/COLOR]
    10.         for(i=2; i<=j/2; i++) // or sqrt(j);    
    11.               if(j%i==0) [COLOR="Red"]///// chia hết cho 1 số thì nó là hợp số ////////[/COLOR]
    12.                       { nt=0 ;    
    13.                  break;  
    14.                       }
    15.     if(nt)         [COLOR="Red"]//////// Tương đương với if(n!=0) /////////[/COLOR]
    16.     printf("  %d",j);                            
    17.         }
    18.     getch();
    19. }

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

    C++ Code:
    1. for(i=2; i<=j/2; i++) // or sqrt(j);

    Sao bạn không sửa luôn i<=j/2; thành i<=sqrt(j); mà lại comment thế kia, tự nhiên lấy cái mốc j/2 chả có cơ sở gì hết, chương trình chạy đúng chỉ vì j/2 luôn lớn hơn sqrt(j) thôi, viết thế sợ các bạn mới học không hiểu bản chất !

  10. #10
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Viết thế cũng không sao, được cái đỡ phải .... khai báo thư viện math.h

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

  1. Giúp dùm mình code popup hiện 2 hình giữa trang
    Gửi bởi thaibinhsos trong diễn đàn Nhập môn lập trình Java
    Trả lời: 2
    Bài viết cuối: 26-09-2013, 12:37 AM
  2. Giúp mình sửa lại code quản lý điểm sinh viên dùm cái. Mình ko biết sửa thế nào cả
    Gửi bởi ronghappy13 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 04-01-2013, 08:49 PM
  3. Mã nguồn C Lỗi các bạn giúp dùm mình code này! cám ơn mọi người nhiù!
    Gửi bởi fulky trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 05-10-2012, 12:21 AM
  4. Bài tập C++ Giúp mình code dùm bài này
    Gửi bởi vmquang91 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 27-03-2012, 01:25 AM
  5. Xin giúp sửa lỗi code dùm
    Gửi bởi tvtau trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 0
    Bài viết cuối: 17-01-2009, 04:15 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