Chương trình tìm số nguyên tố pascal
Function nt(x:integer):boolean; Var i:integer; Begin nt:=true; For i:=2 to trunc(sqrt(x)) do if x mod i =0 then nt:=false; End; Show [=========> Bổ sung bài viết <=========] Được gửi bởi elnino_020993 còn có thể cải tiến được nữa đấy bạn ạh [=========> Bổ sung bài viết <=========] Function nt(x:integer):boolean; Var i:integer; Begin if (x=2) or (x=3) then nt:=true else nt:=false; i:=2 repeat if x mod i then exit else inc(i,2); until i=trunc(sqrt(x)); nt:=N>1; End; [=========> Bổ sung bài viết <=========] Cũng ko cần kiểm tra x=2 or x=3 vấn đúng.Kiẻm tra TH N=1; Var i:integer; Begin if x=1 then nt:=false;exit; nt:=false; i:=2 repeat if x mod i then exit else inc(i,2); until i=trunc(sqrt(x)); nt:=true; End;Bài 1: Nhập vào một số nguyên không âm, kiểm tra xem nó có phải là số nguyên tố hay không?
Bài 2: In ra các số nguyên tố nhỏ hơn hoặc bằng N (N là số nguyên không âm được nhập từ bàn phím).
Chào mọi người đã đến với vlog nhỏ của Trang Dưới đây là viết chương trình kiểm tra số nguyên tố trong pascal mới nhất được cập nhập bởi onthihsghãy tham khảo chương trình kiểm tra số nguyên tố ngay dưới nha. Nội dung chính Show Video kiểm tra n có phải số nguyên tố khôngBài toán kiểm tra số nguyên tố như sau: Viết chương trình Pascal kiểm tra một số n (n <2 tỉ) có phải là số nguyên tố hay không. Thuật toán kiểm tra số nguyên tốDữ liệu trong Pascal thì lưu trong file “nguyento.inp” còn trong Scratch thì lưu trong mảng “Dãy số”. Kiểm tra số N có phải là số nguyên tố hay không.Ví dụ: N = 19 Kết quả là: 19 la so nguyen to N = 33 Kết quả là: 33 khong phai la so nguyen to Yêu cầu: Input: N, là số tự nhiên bất kỳ. Output: Trả lời “N la so nguyen to” hoặc “N khong phai la so nguyen to” tùy theo N. Lưu ý: Số nguyên tố là số chỉ có thể chia hết cho 1 và chính nó ( N ). Ngược lại, N là không phải là số nguyên ==> N chia hết cho một số trong khoảng từ 2 đến (N-1). Hướng dẫn:Bài toán được thực hiện qua 3 bước cụ thể như sau: – Thông báo nhập liệu, và nhập dữ liệu vào cho N Chương trình: Program SNT; Uses crt; Var n , i :Integer; // Khai bao bien su dung BEGIN Write(‘Nhap vao mot so:’); // Thong bao nhap lieu Readln(n); // Nhap gtri N, (voi &N la lay d/c bien N) i := round( sqrt(n) ); If( n mod i <> 0) then // Xuat cau tra loi cuoi cung Writeln(‘ N la so nguyen to’) Else Writeln(‘ N khong la so nguyen to’); Readln; END. Chương trình kiểm tra số nguyên tố trong Pascalprogram kiem_tra_nguyen_to; var m:longint;f:text; {------ chuong trinh con kiem tra so nguyen to ----} function ngto(n:longint):boolean; var i:longint; begin if n<2 then ngto:=false else ngto:=true; for i:=2 to trunc(sqrt(n)) do if n mod i = 0 then begin ngto:=false; break; {thoat vong lap} end; end; {--- het CT con------} {----Than chuong trinh chinh ------} begin {----Doc file ----} assign(f,'nguyento.inp'); reset(f); readln(f,m);close(f); {----Mo file de ghi----} assign(f,'nguyento.out'); rewrite(f); if ngto(m) then write(f,'yes') else write(f,'no'); close(f); end. Thực ra khi thành thạo một ngôn ngữ lập trình rồi thì bạn chỉ cần nắm vững thuật toán là có thể code trên các ngôn ngữ khác. Một số bài tập kiểm tra số nguyên tố pascalBài 1: Nhập vào một số nguyên không âm, kiểm tra xem nó có phải là số nguyên tố hay không?
Bài 2: In ra các số nguyên tố nhỏ hơn hoặc bằng N (N là số nguyên không âm được nhập từ bàn phím).
Trong thuật toán Scratch trên đã sử dụng thuật toán cộng dồn để đếm số ước, còn trong code pascal thì lại dùng một kỹ thuật khác đó là gài để nếu thấy số nguyên có thêm một ước không phải là 1 và chính nó thì khẳng định ngay đó không phải là số nguyên tố. Rõ ràng là hai thuật toán trên hơi khác nhau mình thì thích cách viết gài như trong Pascal, bạn hãy dùng kĩ thuật này để viết lại chương trình trong Scratch xem thế nào nha. |