30/09/2018, 20:36

Anh chị giúp em đoạn code sau em không hiều

đề nhập vào n sau đó in ra so nguyên tố nhỏ hơn, em không hiểu
khai báo biến int dem=0 như sau thì chạy được nhưng không đúng

int dem=0;
for(i=n-1;i>=3;i--)

còn đoạn code sau khai báo biến int dem=0 sau for lai chạy đúng kết quả
đoạn code :

#include<stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
	int n,i,m;
	printf("nhap so nguyen to:n
");
	scanf("%i",&n);
	
	for(i=n-1;i>=3;i--)
	{ 
->chổ em không hiểu	  int dem=0;
		for(m=2;m<i;m++) 
		{	
		 if(i%m==0)
		 {
			dem=1;
		  }
		}
		 if(dem==0)  
		 {
			printf("%i",i);
		 } 	
   }
   
	return 0;
}
Khôi Trần viết 22:38 ngày 30/09/2018

Bạn cứ hiểu là ntn: chạy từ i=n<-3 nếu i là số ngt thì in i ra, mỗi lần kiểm tra i có phải số ngt hay không ta đặt dem=0 nếu i chia hết cho bất kì số nào từ 2->i thì đặt dem=1 (tức không là số nguyên tố)
bạn có thể tham khảo cách kiểm tra số nguyên tố này cho dễ hình dùng

for(i=n-1;i>=3;i--)
if (ktnguyento(i)) >> in i
Duc Nguyen viết 22:46 ngày 30/09/2018

bạn hiểu nhầm ý mình nói rồi mình chỉ không hiểu biến int dem=0 đặt ngoài vòng for chạy được nhưng không ra đúng kết quả

Khôi Trần viết 22:50 ngày 30/09/2018

làm ơn đọc kĩ những gì mình viết đi, đặt ngoài for thì một khi dem=1 thì nó mãi là 1, tmaj hiểu chỉ cần gặp 1 số là số ngt thì các số nhỏ hơn nó đều là số nguyên tố

Bài liên quan
0