30/09/2018, 16:11

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;
}
Onethingisforever! viết 18:18 ngày 30/09/2018

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

Nguyễn Minh Dũng viết 18:18 ngày 30/09/2018

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è

Bấm vào hình cây bút bạn sẽ sửa được bài [image]

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

Làm sao để có thể hiển thị syntax highlighting bằng markdown? Các bạn phải đánh dấu ``` như ví dụ dưới đây Chú ý, dấu ``` được tạo ra bởi nút nằm bên trái số 1 trên bàn phím, nút này sẽ là ~ khi bấm giữ Shift Ví dụ cho C Nội dung: ``` void main() { } ``` Và đừng quên ``` ở cuối Kết quả void main() { } Ví dụ cho Pascal Nội dung: ``` Program HelloWorld; Begin WriteLn('Hello world!') {no ";" is required after the last statement of a block - adding one adds a "null stateme…

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ộ

Onethingisforever! viết 18:13 ngày 30/09/2018

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

Thực tế khắc nghiệt viết 18:15 ngày 30/09/2018

cái code dài quá ! 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 đó

Onethingisforever! viết 18:24 ngày 30/09/2018

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

Thực tế khắc nghiệt viết 18:22 ngày 30/09/2018

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 đó

Onethingisforever! viết 18:19 ngày 30/09/2018

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

Gió viết 18:14 ngày 30/09/2018

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

Thực tế khắc nghiệt viết 18:15 ngày 30/09/2018

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ỳ!

Onethingisforever! viết 18:13 ngày 30/09/2018

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

Thực tế khắc nghiệt viết 18:24 ngày 30/09/2018

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 à

Bài liên quan
0