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

    Mọi người xem cái chương trình của em nó báo lỗi gì vậy? Mốt em thi giữa kỳ phần hàm rồi mà giờ mới biết


  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi hjepsjga_94
    int songuyento( int x)
    { for ( int i=2;i<x;i++);
    if (x%i==0)
    return 0;
    return 1;
    }
    dư dấu; chỗ vòng lặp for, hàm tìm snt thiếu trường hợp x<2 thì return 0, vòng lặp for chỉ cần xét i từ 2 đến =căn bậc 2 của x là đủ rùi

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cảm ơn bạn nhé, thừa dấu ; nhưng 1 là là số nguyên tố, xét tới x-1 cũng ko vấn đề gì bạn à

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi hjepsjga_94
    Cảm ơn bạn nhé, thừa dấu ; nhưng 1 là là số nguyên tố, xét tới x-1 cũng ko vấn đề gì bạn à
    http://vi.wikipedia.org/wiki/S%E1%BB...AAn_t%E1%BB%91
    coi lại wiki bạn nhé, 1 ko phải snt
    còn xét tới x-1 thì vòng lặp chạy nhiều lần hơn-> thời gian chạy chương trình lâu hơn, cái nào tối ưu đc thì nên tối ưu chứ

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    "Mọi số tự nhiên lớn hơn 1 đều phân tích được thành tích những thừa số nguyên tố, và sự phân tích này là duy nhất nếu không kể đến thứ tự của các thừa số."

    nếu 1 là snt thì định lý này sai. Mỗi lần phân tích 1 số thành thừa số ng tố sẽ có vô số cách nếu 1 là snt.
    Vd 45 = 3^2 * 5^1. Nếu 1 là snt thì có ngoài 1^1 * 3^2 * 5^1 còn có thêm 1^2 * 3^2 * 5^1, 1^3 * 3^2 * 5^1, 1^4 * 3^2 * 5^1, ... Vì vậy nếu để 1 là snt thì mỗi khi phân tích 1 số thành thừa số ng tố phải gọi là "phân tích 1 số thành thừa số ng tố trừ 1", trong khi bỏ 1 ra khỏi danh sách số ng tố thì chả có rắc rối gì nên bỏ ra luôn cho rồi.

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi maphongba008
    định nghĩa còn có >1 nhé: snt là số tự nhiên lớn hơn 1, chỉ chia hết cho 1 và chính nó.
    số 1 chỉ có 1 ước là 1 thui nên ko đc tính là snt.
    Còn lười khai math.h thì để n/2 cũng đc, vẫn nhanh hơn n
    Không có chuyện lười ở đây, đã tính đến hiệu quả thì phải đụng vào sqrt của math.h.
    Còn ko thích thì cũng có mẹo tính sqrt (gợi ý: Newton).

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi maphongba008
    đúng là loại n chẵn ra thì bỏ đc 1 nửa số lần lặp. Nhưng còn cái if(n<0) n=0-n; thì nếu n âm cũng có snt à.nguồn Wiki thì 2 là snt nhỏ nhất rùi mà
    vì mình đang phân vân số âm không biết có là số nguyên tố không với cả vẫn có lỗi lần này mình sửa lại không biết còn lỗi nào không
    Mã nguồn PHP:
    //kiem tra so nguyen n co la so ngyen to khong bool LaSNT(int n) { if(n<0) return false; if(n==0||n==1) return false; if(n==2||n==3) return true; if(n%2==0) return false; else { int i = 3; do{ if(n%i==0) return false; i = i + 2; }while(i*i<=n); } return true; }  

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi ANHMATTROI
    vì mình đang phân vân số âm không biết có là số nguyên tố không với cả vẫn có lỗi lần này mình sửa lại không biết còn lỗi nào không
    Không, rõ ràng không.
    Lí do thì xem lại tại sao 1 ko phải là SNT.

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi prog10
    Không, rõ ràng không.
    Lí do thì xem lại tại sao 1 ko phải là SNT.
    mình không hiểu bạn nói rõ hơn không

  10. #10
    Trích dẫn Gửi bởi ANHMATTROI
    mình không hiểu bạn nói rõ hơn không
    Nếu số âm cũng là số nguyên tố thì hãy xem 21 = (-3) * (-7) = 3 * 7 (mà cái này thì đụng vào định lí cơ bản của số học).

 

 
Trang 1 của 2 12 CuốiCuối

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
  •