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!!
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
Bạn ơi. Bạn không nên hỏi bài như thế này nhé bạn
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
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é
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^^
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é
bạn thêm code vào giữa hai dấu ` nhé
nên thêm vào giữa như sau:
(3 dấu `)C
code
(3 dấu như trên)
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.
em thêm ``` vào rồi…nhưng… nó chả có hiện tượng gì cả?!!
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
cảm ơn anh ạ!!