Nhập số nguyên dương n >10, tìm và hiển thị ra màn hình n số nguyên tố đầu tiên và tổng của chúng

Nhập số nguyên dương n >10, tìm và hiển thị ra màn hình n số nguyên tố đầu tiên và tổng của chúng.
em dag hoc ngôn ngu lập trình C , em cần viết bài này sử dụng vòng lặp ạ…
giúp em với!!

Bạn ơi. Bạn không nên hỏi bài như thế này nhé bạn :smiley:
Bạn nên tự làm theo ý tưởng của bạn. Code sau đó buil run rồi nếu có lỗi up code lên diễn đàn mọi người cùng thảo luận. Đó là mục đích của diễn đàn :smiley:
Còn bài này thì mình cũng góp ý chút là : Bạn sử dụng cấu trúc lặp và hàm kiểm tra số nguyên tố ? Bạn thử xem sao nhé :smiley:

bạn đang học vòng lặp thế chắc chưa học đến hàm nhỉ, thế phải dùng vòng lặp lồng nhau rồi.
Bạn đã biết dùng vòng lặp để kiểm tra xem 1 số có phải là số nguyên tố không chưa?
Với kiểu hiển thị ra màn hình n số nguyên tố đầu tiên thì ta chưa biết được số đấy trong khoảng nào, vậy thì cần dùng vòng lặp chưa biết số lần lặp (while). Bạn sẽ khởi tạo 1 biến để đếm số số nguyên tố tìm được và 1 biến lưu tổng các số nguyên tố đó, 1 biến để chạy. rồi bạn dùng vòng lặp while để xét lần lượt từng giá trị của biến chạy, nếu biến chạy là số nguyên tố (dùng 1 vòng lặp để kiểm tra) thì tăng đếm và cộng tổng. cứ thế đếm đủ thì nó out khỏi while và bạn in ra kết quả.

int main ()
{
    int n,a,i,S,St,dem;
    do
    {
        printf("Nhap vao so nguyen duong n >10: ");
        scanf("%d",&n);
        if (n<=10)
        {
            printf("\n Gia tri n khong hop le, Vui long nhap lai!\n");
        }
    }while (n<=10);
    printf("\n %d so nguyen to dau tien la ",n);
    S=0;
    St=0;
    dem=0;
    for(i=2;;i++){
        for(a=1;a<=i;a++)
        {if(i%a==0)
            {
               St=St+a;
               if(St==i+1){
                    printf(" %d    ",i);
                    S=S+i;
                    dem=dem+1;
                    }
               }
            }

        if (dem == n){
                        break;
                    }
    }
    printf("\n Tong cua %d so nguyen to dau tien la %d",n,S);

    getch ();
    return 0;
}

đây là phần code của e em ko bít là sai ở đâu nữa…
hihii em là thành viên mới nên ko bít là phải hỏi ntn cho chuẩn ạ anh chị thông cảm^^

1 Like

Bạn ơi, cho code vào markdown đi bạn

Không sao . Nhưng bạn sửa lại bài và cho code vào markdown đi đã nhé :smiley:
bạn thêm code vào giữa hai dấu ` nhé :smiley:

nên thêm vào giữa như sau:
(3 dấu `)C
code
(3 dấu như trên)

1 Like

hic cái markdown là cái gì đấy ạ ???!!
mà làm sao để làm nó ạ?

Nó có nhiều cái lắm, ở đây thì để định dạng hiển thị code cho dễ đọc hơn. :smile:

1 Like

em thêm ``` vào rồi…nhưng… nó chả có hiện tượng gì cả?!!:joy:

1 Like
for(i=2;;i++){
		for(a=1;a<=i;a++)
		{
			if(i%a==0)
			{
				St=St+a;
				if(St==i+1){
					printf(" %d ",i);
					S=S+i;
					dem=dem+1;
				}
			}
		}
		
		if (dem == n){
			break;
		}
	}

Sai ở đây nhé, sau mỗi lần xét 1 i thì bạn phải đặt lại St = 0 để dùng cho i sau nha

1 Like

:smiley:
cảm ơn anh ạ!!

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?