Code nhập vào 1 số N và đưa ra N số nguyên tố

code C++, các bác cho ý kiến có cách nào tốt hơn ko? nếu trùng bài del giúp em nhé a @ltd

#include <iostream>
#include<conio.h>
#include<math.h>
using namespace std;
int ktSNT (const int a)
{
	int x = sqrt(float(a));
	int i = 0;
	for(i = 2; i <= x ; i++)
	{
		if( a % i == 0 || a < 2 && a != 2)
		{
			return 0;
		}
	}
	return 1;
}
int main ()
{
	int N,i, k = 0;
	int* snt = 0;
	cout << " Nhap vao mot so N:";
	cin >> N ;

	snt = (int*)malloc(N*sizeof(int));
	k = 0;
	i = 2;
	while(k < N)
	{
		i++;
		if(ktSNT(i) == 1)
		{
			snt[k] = i;
			k++;
		}
	}

	cout<<" Bang cac so nguyen to " << " " << endl;
	for (i = 0; i < k; i++)
	{
		cout<< snt[i];
	}
	free(snt);
	getch();
	return 0;
}
1 Like

:frowning: giúp em edit lại với a @ltd

1 Like

Anh sửa bài cho em rồi đấy, em cũng có thể tự sửa bằng cách bấm vào cây bút trên bài của em. Coi hướng dẫn ở đây nè

Còn để post code thì em coi đây

Còn để tìm kiếm bài thì anh toàn dùng tính năng search gõ phát ra ngay. Ví dụ em search “cách sửa bài”, “cách post code” là ra hết đấy.


Bài không trùng đâu em.

Cứ tiếp tục như thế nhé @minhdiem, chúc em mau tiến bộ :thumbsup:

1 Like

vâng cảm ơn a Đạt! em đang học thôi :smile:

1 Like

cái code dài quá :smiley:! tại sao ta ko để 1 hàm thôi! trong lúc chạy vòng lặp for ta in ra số nguyên tố thoả lun! ngắn bằng 1/2 đó :smiley:

2 Likes

:dancer: để em làm lại :)))

mỗi khi nó kiếm đc 1 giá trị đúng nó sẽ in trực tiếp ra! nếu bài toán đòi tính thì ta chỉ cần tính kết quả! ở đây thì in ra số nguyên tố lên cứ kt đc số nào in ra! để trong vòng lặp đó

1 Like

e hiểu rồi :smiley:, cái này ngắn

Theo mình, không cần phải chạy lần lượt đến sqrt(n) mỗi khi kiểm tra n có phải là số nguyên tố hay không.
Mình có 1 nhận xét thế này: nếu n là hợp số, thì n phải chia hết cho 1 số nguyên tố nào đó <= sqrt(n). Như vậy chúng ta chỉ cần lưu vào mảng số nguyên tố trước đó <=sqrt(n) để kiểm tra thôi :smiley:

2 Likes

chúng ta có thể thay vào 3 5 7 để chia là đc! thuật toán này đc chứng minh r! thực tế thì mấy bạn mới học bơi vào đây để học! cho nên mình k có post code giải thế ngta k hiểu! code thế này ai cũng hiểu mà hỳ!

1 Like

em mới mày mò tập tành thôi, giờ có ý tưởng mới ngồi còn gõ bàn phím chán :stuck_out_tongue:

trc hết hãy dành time cho việc luyện tập nhận thức toán tử toán hạng ! các biến, tầm vực, hàm có sẵn, cấu trúc qui luật,… thật vững rồi mọi thứ sẽ dễ dàng thôi à

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