[Wiki] Hàm Kiểm Tra Số Nguyên Tố Trong C/C++ - Dạy Nhau Học Trang chủ » Ham Kiem Tra So Nguyen To Trong C » [Wiki] Hàm Kiểm Tra Số Nguyên Tố Trong C/C++ - Dạy Nhau Học Có thể bạn quan tâm Hàm Kiểm Tra Số Nguyên Tố Trong Excel Hàm Kiểm Tra Số Nguyên Tố Trong Mảng Hàm Kiểm Tra Số Nguyên Tố Trong Mảng 2 Chiều Hàm Kiểm Tra Số Nguyên To Trong Mảng C Hàm Kiểm Tra Số Nguyên Tố Trong Python [Wiki] Hàm Kiểm Tra số nguyên tố trong C/C++ share writes wiki c++ Honey_moon (Thực tế khắc nghiệt) April 1, 2015, 8:49pm #1 Số nguyên tố: Số nguyên tố là số tự nhiên chỉ chia hết cho 1 và chính nó. Ngoài ra nó không chia hết cho bất cứ số nào khác. Số 0 và 1 không được coi là số nguyên tố. - Theo wiki Số 2 là số nguyên tố chẵn duy nhất. Cấu trúc ở dạng C: int soNguyenTo(int soA) { if (soA < 2) return 0; for (int i = 2; i <= sqrt((float)soA); i ++) { if (soA%i==0) { return 0; } } return 1; } Định nghĩa : Do người dùng tự tạo. Có thể có nhiều cách để tối ưu. Ví dụ : Hãy kiểm tra xem số bạn nhập có phải là 1 số nguyên tố hay không ? Code minh hoạ C++ #include <iostream> using namespace std; bool soNguyenTo(int); bool soNguyenTo(int soA) // hàm bool trả về true/false { if (soA < 2) // Nếu số A nhỏ hơn 2 { return false;// trả về false } else if (soA>2)// Nếu số A lớn hơn 2 { if (soA % 2 == 0) // Xét xem A có chia hết cho 2 không? { return false;// Nếu chia hết, return false. } for (int i = 3; i < sqrt((float)soA); i += 2) // xét từ 3 đến căn bậc 2 của số A { if (soA%i == 0) // nếu A chia hết cho một số nào đó trong đoạn này { return false;// trả về kết quả sai } } } return true;// sau tất cả các chỗ trên, nó mà không sai thì cuối cùng nó đúng :3 } int main(int argc, char ** argv) { int n; // khai bao so kiem tra la so nguyen cout << "Nhap so can kiem tra?!" << endl; cin >> n; // nhap vao so nguyen tu ban phim if (soNguyenTo(n) == true) { cout << "So " << n << " la so nguyen to!!!!"; } else { cout << "So " << n << " khong phai nguyen to!!!!"; } system("pause"); return 0; } Hình minh họa: 9 Likes Tìm số nguyên tố trong đoạn a,b chỉ dùng lệnh rẽ nhánh và vòng lặp? Kiểm tra số nguyên tố trong mảng Tính tổng các số nguyên tố trong mảng? Giúp bài tập in ra các số nguyên tố thuộc trong đoạn [a;b] với a, b là các số nguyên dương Tổng hợp - Open source project - Wiki posts - C/C++ Nhập số thực và tính tổng tất cả chữ số nguyên tố bằng ngôn ngữ C Cách tìm số nguyên tố trong mảng? Làm sao để xuất mảng con chỉ gồm các số nguyên tố và dài nhất? Lỗi khi chạy chuong trình Cách tìm số nguyên tố như thế này có đúng không ạ Hỏi về cách tính tổng số nguyên tố TTmagic (TTmagic) April 1, 2015, 8:50pm #2 góp vui bức hình 2 Likes minh_vu_03 November 30, 2014, 3:50pm #3 bool soNguyenTo(int soA) { if (soA < 2) { return false; } else { for (int i = 2; i <= sqrt((float)soA); i ++) { if (soA%i==0) { return false; } } } return true; } Rút ngắn lại như trên cho dễ nhìn hơn. Các bác mới học nhìn vô cũng dễ hiểu hơn. 7 Likes Honey_moon (Thực tế khắc nghiệt) November 30, 2014, 3:53pm #4 minh_vu_03: Rút ngắn lại như trên cho dễ nhìn hơn. Các bác mới học nhìn vô cũng dễ hiểu hơn. đang tính viết từ thô sơ tới tối ưu mà nghĩ lại cái để vậy luôn. kakaka 1 Like yuh (Huy) December 2, 2014, 11:54am #5 mình luôn dùng cách này vì mình nghĩ nó sẽ chạy nhanh hơn khi chỉ phải xét các số lẻ thay vì phải xét hết liên tiếp for (i=3->sqrt(n), i+=2 2 Likes Honey_moon (Thực tế khắc nghiệt) December 2, 2014, 11:56am #6 david15894: mình luôn dùng cách này vì mình nghĩ nó sẽ chạy nhanh hơn khi chỉ phải xét các số lẻ thay vì phải xét hết liên tiếpfor (i=3->sqrt(n), i+=2 wiki xét thế mà bạn? nguyenvanquan7826 (Quân) December 3, 2014, 2:49pm #7 Các bức hình bên trên của thuật toán sàng nguyên tố 2 Likes ltd (Lê Trần Đạt) December 4, 2014, 1:55am #8 Wow, anh còn không biết Làm vài bài ủng hộ đi @nguyenvanquan7826 1 Like yuh (Huy) December 4, 2014, 3:31am #9 nhớ không lầm là chỉ sàng được n<100 nguyenvanquan7826 (Quân) December 4, 2014, 6:57am #10 Tìm 100 thì tìm làm gì bạn Nó dùng trong các bài toán tìm số nguyên tố trong khoảng từ a->b mà a rất nhỏ, b rất lớn, tức là khoảng cách rất lớn. 1 Like nguyenvanquan7826 (Quân) December 4, 2014, 6:58am #11 Sắp có anh ợ. 1 Like nguyenvanquan7826 (Quân) December 7, 2014, 4:53pm #12 Vừa lúc sáng viết lại thử cái sàng nguyên tố 3 Likes Honey_moon (Thực tế khắc nghiệt) December 8, 2014, 1:37am #13 nguyenvanquan7826: Vừa lúc sáng viết lại thử cái chuẩn men kakakakaka 1 Like SoiLuv (Nguyễn Duy Khánh) May 19, 2015, 2:09pm #15 Đa số e thấy mn toàn dùng cách là xét chia hết cho các số lẻ từ 3 -> sqrt(n). Và thấy nhiều người bảo là tối ưu nhất Các SNT trừ 2 và 3 ra để có dạng (6k + 1) hoặc (6k - 1) Code C++ bool Is_Prime(int n) { if ((n == 2) || (n == 3)) { return true; } if ((n % 2 == 0) || (n % 3 == 0) || (n < 2)) { return false; } int i = -1, sqrt_n = sqrt(n); do { i += 6; if ((n % i == 0) || (n % (i + 2) == 0)) { break; } } while (i <= sqrt_n); return (i > sqrt_n); } Có gì sai sót mong mn chỉ bảo 2 Likes Em_Beeng (Em Beeng) September 12, 2015, 2:48am #16 Tại sao phải xét từ 2 đến căn bậc hai của số A Em_Beeng (Em Beeng) September 12, 2015, 3:10am #17 tai sao chạy từ 2- sqrt(A) Gio (Gió) September 12, 2015, 5:33am #18 dễ dàng chứng minh nếu A là hợp số thì sẽ có ít nhất 1 ước #1 <=sqrt(A) bởi nếu tất cả các ước #1>sqrt(A) thì ước1 * ươc2 … >A 1 Like Em_Beeng (Em Beeng) September 12, 2015, 5:52am #19 ukm, thanks Lam_Quang_Minh (Lâm Quang Minh) October 8, 2015, 4:53pm #21 Đa số hiện nay người ta sử dung đơn giản ý tưởng như Nguyễn Duy Khánh, đó là ý tưởng bước nhảy 2, 4 so le với nhau, có nhiều cách viết nhưng ý tưởng là vậy manhcuong199748 (nguyễn mạnh cường) September 12, 2018, 2:20pm #22 do { i += 6; if ((n % i == 0) || (n % (i + 2) == 0)) { break; } } while (i <= sqrt_n); return (i > sqrt_n); cái đoạn này ai giải thích trình tự hđ của nó dc k next page → DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Ham Kiem Tra So Nguyen To Trong C Kiểm Tra Số Nguyên Tố Trong C Kiểm Tra Số Nguyên Tố Sử Dụng C/C++ Và Java - Lập Trình Không Khó Check Số Nguyên Tố Trong C - Bài Tập C Có Lời Giải - VietTuts Cách Kiểm Tra Số Nguyên Tố Trong Lập Trình C/C++ Lập Trình C - Kiểm Tra Số Nguyên Tố Kiểm Tra Số Nguyên Tố Trong C++ - Techacademy Kiểm Tra Số Nguyên Tố Trong C - Hoclaptrinh Lập Trình C: Kiểm Tra Một Số Có Phải Số Nguyên Hay Không | V1Study C - Bài Tập 2.9: Kiểm Tra Số Nguyên Tố - YouTube Thuật Toán Kiếm Tra Số Nguyên Tố Thuật Toán Kiếm Tra Số Nguyên Tố - Freetuts Kiểm Tra Số Nguyên Tố Trong C | 64 Bài Học Lập Trình C Hay Nhất Kiểm Tra Một Số Có Phải Số Nguyên Tố Trong C