01/10/2018, 09:07
Số nguyên tố nhỏ hơn n trong C
e mới làm bài và tham khảo bài a chị trên e ko hiểu đoạn dem=0 ở cuối chương trình ai giải thích giúp với ạ
#include<stdio.h>
#include<conio.h>
int main() {
int n, dem;
scanf("%d", &n);
if(n<2) {
printf("%d ko la so nguyen to
", n);
} else {
for(int i=2;i<=n;i++){
for(int j=1;j<=i;j++){
if(i%j==0)
dem++;
}
if(dem == 2)
printf("%d la so nguyen to
", i);
else
printf("%d ko la so nguyen to
", i);
dem=0;
}
}
return 0;
}
Bài liên quan
Vòng lặp for đầu tiên bạn chạy từ 2 đến n, có nghĩa là bạn kiểm tra từng số để xem có phải SNT không. biến dem là biến đếm số ước của các số trên, nếu số ước lớn hơn 2 thì ko phải là snt. đếm xong bạn phải cho về 0 để đếm tiếp các số tiếp theo.
Mình có ý kiến giúp code của bạn chạy ít vòng lặp hơn là bạn chỉ cần kiểm tra ước từ 2 đến căn của số i(số cần kiểm tra có phải snt không). dem=0 thì là snt.
Nếu bạn học về chuyên ngành CNTT thì bạn cần tìm hiểu về thuật toán nhiều hơn đấy.
Cảm ơn bạn. Mình sẽ tìm hiểu kỹ hơn về thuật toán
bạn tham khảo topic này nhé,dễ hiểu hơn,code ngắn dễ hiểu,cách code trên cũng được thôi nhưng mình khuyến nghị code càng " dài " càng tốt
-Hàm trên để kiểm tra số nguyên tố
-Cho người dùng nhập vào 1 số bất kỳ ( khuyến nghị >0 )
-Dùng hàm trên để kiểm tra số đó
-Nếu hàm trên trả về 1 thì xuất ra thông báo -->Đây là số nguyên tố và ngược lại
-Kết thúc
ok b m sẽ tham khảo