Kiểm Tra Số Nguyên Tố Trong Mảng - Programming - Dạy Nhau Học Trang chủ » Hàm Kiểm Tra Số Nguyên Tố Trong Mảng » Kiểm Tra Số Nguyên Tố Trong Mảng - Programming - Dạy Nhau Học Có thể bạn quan tâm 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 Hàm Kiểm Tra Sql Hàm Kiểm Tra Trùng Dữ Liệu Trong Sql Kiểm tra số nguyên tố trong mảng programming c++ thanh1997 (thanh) January 9, 2016, 7:20am #1 đây là code số nguyên tố của em mà sao nó không chạy #include<iostream> using namespace std; #define Max 100 void nhapmang(int mang1chieu[Max], int &sopt){ cout << "\nNhap so phan tu:"; cin >> sopt; for (int i = 0; i < sopt; i++) { cout << "\nNhap so phan tu thu " << i << ": "; cin >> mang1chieu[i]; } } void xuatmang(int mang1chieu[Max], int sopt){ for (int i = 0; i < sopt; i++) { cout << "\nSo phan tu thu " << i << ": " << mang1chieu[i]; } } void KTSN(int mang1chieu[Max], int sopt){ int dem = 0; for (int i = 0; i < sopt; i++) { for (int n = 1; n < sopt; n++){ if (mang1chieu[i] % n == 0) dem++; } if (dem == 2) cout << mang1chieu[i] << "la so ngto"; } } void main(){ int mang1chieu[Max], sopt; nhapmang(mang1chieu, sopt); xuatmang(mang1chieu, sopt); KTSN(mang1chieu, sopt); system("pause"); } 1 Like Phong_Tran (Trần Hồng Phong) January 9, 2016, 6:39am #2 Hàm quan trọng nhất là KTSN() bị sai. for (int n = 1; n < sopt; n++) => for (int n = 1; n <= mang1chieu[i]; n++) Biến dem đem vào trong vòng for thứ nhất để nó reset lại Mình nghĩ bạn nên tách thành 2 hàm Kiểm tra số nguyên tố (1 số) và Kiểm tra số nguyên tố trong mảng. Như vậy sẽ dễ hiểu hơn, và tránh được sai xót 2 Likes zehanzo (Hồ Minh Chiến) January 10, 2016, 2:30am #3 bool songto(int n){ if (n < 2) return false; if ( n == 2) return true; for (int i = 1; i < (n/2); ++i) if (n % i == 0) return false; return true; } void KTSN(int mang1chieu[Max], int sopt){ for (int i = 0; i < sopt; i++) if (songto(mang1chieu[1]) cout << mang1chieu[i] << “la so ngto”; } thanh1997 (thanh) January 10, 2016, 3:07am #4 ủa ở dòng 3 trong hàm KTSN hình như thiếu điều kiện của if mà. thanh1997 (thanh) January 10, 2016, 3:19am #5 em sửa lại thành thế này mà nó vẫn không chạy là sao ạ T.T #include<iostream> using namespace std; #define Max 50 void nhap(int mang1chieu[Max],int &sopt){ cout << "\nNhap so phan tu:"; cin >> sopt; for (int i = 0; i < sopt; i++) { cout << "\nNhap phan tu thu " << i<<":"; cin >> mang1chieu[i]; } } int tong(int mang1chieu[Max],int sopt){ int lonnhat=mang1chieu[0]; lonnhat = mang1chieu[0]; for (int i = 0; i<sopt; i++) { if (lonnhat<mang1chieu[i]) lonnhat = mang1chieu[i]; } return lonnhat; } bool KTSNT(int n){ int dem = 0; if (n < 2) return false; for (int i = 1; i < n; i++) { if (n%i == 0) dem++; } if (dem == 2) return true; return false; } void kiemtraSNT(int mang1chieu[Max],int sopt){ for (int i = 0; i < sopt; i++) { KTSNT(mang1chieu[i]); if (mang1chieu[i] == true) cout << mang1chieu[i]<<" la so nguyen to trong mang."<<endl; } if (KTSNT == false) cout << "\nKhong co so nguyen to trong mang:"; } void main(){ int mang1chieu[Max],n; nhap(mang1chieu,n); cout << "\nSo lon nhat trong mang la:" << tong(mang1chieu,n) << endl; kiemtraSNT(mang1chieu, n); system("pause"); } zhenande (Liêu Đức Mạnh) January 10, 2016, 6:29am #6 Đầu tiên ở hàm “tong”, bạn viết 1 lúc 2 lệnh giống nhau chi cho dư thừa vậy??? int lonnhat=mang1chieu[0];(1) lonnhat = mang1chieu[0];(2) Nếu bạn đã viết số 1 rồi thì không cần viết cái số 2 làm gì nữa. Thứ 2 ở hàm KTSNT nếu bạn muốn “dem == 2” để xét đk snt thì trong vòng for “i<=n” khi đó n%1 và n%n mới đúng, còn nếu “i<n” như bạn viết thì sẽ sai kết quả. Thứ 3 ở hàm kiemtraSNT trong vòng for câu lệnh if. mang1chieu[i] là kiểu int, không thể so sánh với kiểu bool được. KTSNT(mang1chieu[i]); if (mang1chieu[i] == true) viết như trên là sai, sửa: if(KTSNT(mang1chieu[i])) // Vì hàm KTSNT trả giá trị true false nên nếu true thì if(true) nó sẽ thực hiện câu lệnh luôn, không cần == true chi nữa. cout << ........... zehanzo (Hồ Minh Chiến) January 10, 2016, 2:05pm #7 trong KTSNT for (int i = 1; i < n; i++) { if (n%i == 0) dem++; } if (dem == 2) return true; k nên làm vậy. sẽ dài dòng. mình cho nó chạy thẳng từ 2 luôn. nó chia hết cho cái nào thì return false. như vậy sẽ nhanh hơn yuh (Huy) January 10, 2016, 2:12pm #8 Đã có nhiều bài nói về kiểm tra số nguyên tố [Wiki] Hàm Kiểm Tra số nguyên tố trong C/C++ writes 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… 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 » Hàm Kiểm Tra Số Nguyên Tố Trong Mảng Bài 46. Liệt Kê Số Nguyên Tố Trong Mảng 1 Chiều Tìm Số Nguyên Tố Trong Mảng C Đếm Số Nguyên Tố Có Trong Mảng Một Chiều Các Số Nguyên Bằng C In Ra Các Số Nguyên Tố Trong Mảng C/C++ In Ra Các Số Nguyên Tố Trong Mảng C/C++ - Hội Buôn Chuyện Đếm Số Lượng Số Nguyên Tố Trong Mảng Lập Trình C/C++ Xuất Các Số Nguyên Tố Trong Mảng Bất Kỳ Gồm N Phần Tử Viết Hàm In Ra Các Số Nguyên Tố Trong Mảng 1 Chiều A Có N Phần Tử. Kiểm Tra Một Số Có Phải Số Nguyên Tố Trong C Tìm Và In Ra Các Số Nguyên Tố Trong Mảng C++ - 24h68 Viết Hàm In Các Phần Tử Nguyên Tố Trong Mảng Các Số Nguyên Kiểm Tra Số Nguyên Tố Trong Mảng Viết Hàm Kiểm Tra Một Mảng Gồm N Số Nguyên Có Phải Là Mảng Toàn ... Lập Trình C: Tìm Số Nguyến Tố Trong Mảng Số Thực | V1Study