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;
}
Bài liên quan
giúp em edit lại với a @ltd
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ộ
vâng cảm ơn a Đạt! em đang học thôi
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 đó
để 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 đó
e hiểu rồi , 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
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ỳ!
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
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 à