01/10/2018, 00:35

Số nguyên tố thứ k

ai giúp em bài này vs ạ.em chỉ biết in ra số ntố thôi còn in ra số ntố thứ k em ko có ý tưởng j hết.Mong mn gíup đỡ
Hãy viết chương trình nhập từ bàn phím hai số nguyên dương N và k. Thông báo ra màn hình OK nếu N là số nguyên tố thứ k và KO nếu N không phải số nguyên tố thứ k.

Yêu cầu: Chỉ in ra màn hình OK hoặc KO và không có gì khác.

Ví dụ:

./Nguyentok
5 3
OK

Chu Mai Bình viết 02:41 ngày 01/10/2018

Mình nghĩ là bạn nên dùng thuật toán sàng nguyên tố Eratosthen

song ji hyo viết 02:46 ngày 01/10/2018

em chưa học a ơi,em mới học lập trình thôi,mới học đến vòng lặp for

Chu Mai Bình viết 02:41 ngày 01/10/2018

Hoặc là bạn sử dụng vòng lặp while, kiểm tra tính nguyên tố của từng số một. Cứ mỗi lần gặp số nguyên tố thì bạn tăng biến đếm lên. Khi nào biến đếm bằng số k thì kiểm tra xem N có bằng số nguyên tố thứ k không.

song ji hyo viết 02:41 ngày 01/10/2018

em vẫn chưa hiểu lắm a viết hộ em 1 đoạn code đc ko ạ

Khang Việt viết 02:45 ngày 01/10/2018

mình nghĩ như thế này . Ban đầu bạn tìm số nguyên tố , mỗi lần tìm được 1 số nguyên tố thì bạn dùng 1 biến đếm vị trí và tăng nó lên . Nếu vị trí == k là thỏa

Chu Mai Bình viết 02:37 ngày 01/10/2018
int i = 2;
int dem =0;
while true
{
	if (isPrime(i))
		dem++;
	if (dem == k) 
		if (n == i)
		{
			cout << "OK";
			return 0;
		}
		else 
		{
			cout << "KO"
			return 0;
		}
	i++;
}

Hàm isPrime là hàm kiểm tra nguyên tố thì bạn tự viết nhé

song ji hyo viết 02:40 ngày 01/10/2018

vâng ạ,em cảm ơn a,để em thử ạ

Quốc Hùng viết 02:52 ngày 01/10/2018

Cách đơn giản nhất đó là đếm số số nguyên tố, không cần sợ tốn bộ nhớ

var i,j,n: integer;
begin
 i:=2;
 j:=0;
 repeat
  if ktnt(i) then inc(j);
  inc(i);
 until j=n;
end.
Bài liên quan
0