Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    bài tập C xác định số nguyên tố

    đây là code của mình,đề bài là nhập vào số nguyên dương p sao cho 2<p<100,xác định xem có phải số nguyên tố hay không:

    int p,i;
    printf(" nhap so p: ");
    scanf_s("%d", &p);
    if (p <= 2) printf(" nhap lai");
    if (p >= 100) printf(" nhap lai");
    for (i = 2; i < p; i++)
    {
    if (p%i == 0) printf(" %d ko la so nguyen to", p);
    else printf(" %d la so nguyen to", p); break;
    }
    _getch();
    return 0;

    ra kết quả đúng hầu hết các số,nhưng ko hiểu sao vẫn có số sai,điển hình là 9 vs 15,mong mọi người chỉ giúp
    P/s: e mới học nhập môn lập trình tới if,for,switch thôi nên mọi người dùng kiểu bình dân giúp e

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trong vòng lặp thì dùng cờ để kiểm tra nhé
    Mã:
    int isPrime = 0;for( int i = 2 ; i * i < n ; i ++ ){    if( n % i == 0 ) { isPrime = 1; break; }}if(isPrime) printf("Is prime!");else printf("Not is prime!");

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    #include<conio.h>
    #include<stdio.h>

    int ktra(int n)
    {
    int tg=1;
    for(int i=2;i<=n/2; i++)
    if(n%i==0)
    {
    tg=0;
    break;
    }
    return tg;
    }
    void inday(int a[], int n)
    {
    for(int i=0;i<n;i++)
    printf("%d, ", a[i]);
    }
    int main()
    {
    int a[50], j=0, dem=0, n;
    printf("Nhap n = "); scanf("%d",&n);
    for(int i=2;i<=n;i++)
    if(ktra(i)==1)
    {
    a[j]=i;
    j++;
    dem++;
    }
    printf("
    Co %d So Nguyen To < %d",dem,n);
    printf("
    DS Tat Ca Cac So Nguyen To < %d la : ", n); inday(a,dem);
    getch();
    return 0;
    }

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi conrongchautien
    Trong vòng lặp thì dùng cờ để kiểm tra nhé
    Mã:
    int isPrime = 0;for( int i = 2 ; i * i < n ; i ++ ){    if( n % i == 0 ) { isPrime = 1; break; }}if(isPrime) printf("Is prime!");else printf("Not is prime!");
    e ko hiểu sao lại là i*i<n mà ko phải là i<n ạ?

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi optimusprime242
    e ko hiểu sao lại là i*i<n mà ko phải là i<n ạ?
    Nếu tìm ra 1 ước <= căn n thì tương ứng với nó là 1 ước >= căn n và ngược lại.
    Vì vậy quét tới i=căn n là đủ.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •