Mấy anh giúp em giải bài này:
Nhập vào 1 dãy, xác định xem trong dãy có bao nhiu số nguyên tố ? em ko biết là làm sao để phân biết được số nguyên tố với những số khác.
Mấy anh giúp em giải bài này:
Nhập vào 1 dãy, xác định xem trong dãy có bao nhiu số nguyên tố ? em ko biết là làm sao để phân biết được số nguyên tố với những số khác.
Search đi! Trong cái box Pascal này có không dưới 5 thread về vụ này đâu.
chaj oi co ban nao chi minh pascal voi coi minh nhin no nhu mu tich
Số nguyên tố là số chia hết cho 1 và chính nó đó bạn.
troi oi, tim so nguyen to ma khong biet a, hoc lop may roi ha?
code
{
so nguyên tố la so không chia het cho 1 va chinh no. Ve nguyên tắc thì phải thử hết cac số từ 1 đến n xem nó có chia het khong nhung ma ông đầu to nào đã nghĩ ra rằng chi can xet tu 1 den phan nguyen cua can bac hai cua N ma thoi. Nếu no chia hết cho bất cứ số nào thì có nghĩa là nó không là sô nguyên tố.
}
var i, n : longint;
ok:boolean;
begin
write('nhap n: '); readln(n);
if n<2 then
begin
write('n ko la so nguyen to');
readln; halt;
end;
if n=2 then write('n là so nguyen to')
else
for i:=2 to trunc(sqrt(n)) do
if n div i=0 then
begin
write('n ko la so nguyen to')
readln; break;
end
else ok:=true;
if ok then write('n la so nguyen to');
readln;
end.
ô hay nhâ?Y,
thu? làm bài này xem:
In ra các sô' nguyên tô' năm` giua 2 sô' a, b (1 <= b - a <= 10^5, a,b <= 10^6 ).
Gio'i ha.n: Time limit: 2s. Bô nhó: FP.
Go.i ý: su dung sàng.
giai bai jacobi ho em di cac anh oi,
trò tre con dùng sàng là một cách vẫn có thể dùng cách trên được, chỉ cần thêm for là ok con tính thời gian thì lai dung may cai tro thoi gian thuc o cai vung nho $46c chu gi
thuật toán của cao_thu thì mình bít rùi nhưng kiểu đó ko bám sát định nghĩa của số nguyên tố.
Mình có cách khác nè, các bạn coi thử nha.
uses crt;
var i,a:word;
begin
clrscr;
repeat
write('nhap so a');readln(a);
until a>=2 ;
for i:=2 to a do
if a mod i = 0 then
break;
if a=i then
write('day la so nguyen to')
else
write('day ko phai so nguyen to');
readln
end.
{giúp đỡ mình nhiều nha thax}
kata_sasuke@yahoo.com
Được sửa bởi doquangviet lúc 16:59 ngày 22-10-2007
Bài này mình đã thử làm rồi. Dùng vòng lặp while do, đây là cái thuật toán của nó: Nhập vào số n cho i:=2 (1 dâu phải là số nguyên tố) chạy tới n, điều kiện của vòng lặp là n mod i<> 0, như vậy nó sẽ chia cho đến khi i=n nếu thỏa vong lặp và sau đó ta thêm một dòng lệnh IF i=n thì xong, in ra số nguyên tố:
Program songuyento;
uses crt;
Var
n,i:integer;
Begin
Write('Nhap vao mot so nguyen to = ');
Readln(n);
i:=2;
While n mod i <> 0 do
i:=i+1;
If i=n then
Write('Day la so nguyen to')
Else
Write('Day khong phai la so nguyen to');
Readln;
End.
Mọi người nhận xét nếu có sai ở đâu thì sửa dùng nhé.
Bookmarks