Tin học Viết thuật toán

NHok Sky

Học sinh
Thành viên
23 Tháng mười 2017
163
56
46
Quảng Bình
THCS
Last edited by a moderator:
  • Like
Reactions: 02-07-2019.

02-07-2019.

Học sinh tiến bộ
HV CLB Lịch sử
Thành viên
4 Tháng năm 2018
1,485
1,656
236
Vĩnh Phúc
Trung học cơ sở Lập Thạch
Viết thuật toán của đề bài "Xác định tính nguyên tố của 1 số dương".

M.n giúp mk vs ạ, mk đag cần gấp ạ!! Thanks trước ạ!!
Mã:
Function ktnt(x:int64):boolean;
var i:int64;
Begin
    If x<2 then exit(false);
    If (x=2) or (x=3) then exit(true);
    If (x mod 2 =0) or (x mod 3=0) then exit(false);
    i:=5;
    While i<=trunc(sqrt(x)) do
    If (x mod i=0) or (x mod i+2=0) then exit(false)
    Else                            inc(i,6);
    Exit(true);
End;
Trên là 1 hàm thôi nhé bạn! Mình chưa viết chương trình đầy đủ đâu!
 
  • Like
Reactions: NHok Sky

NHok Sky

Học sinh
Thành viên
23 Tháng mười 2017
163
56
46
Quảng Bình
THCS
Mã:
Function ktnt(x:int64):boolean;
var i:int64;
Begin
    If x<2 then exit(false);
    If (x=2) or (x=3) then exit(true);
    If (x mod 2 =0) or (x mod 3=0) then exit(false);
    i:=5;
    While i<=trunc(sqrt(x)) do
    If (x mod i=0) or (x mod i+2=0) then exit(false)
    Else                            inc(i,6);
    Exit(true);
End;
Trên là 1 hàm thôi nhé bạn! Mình chưa viết chương trình đầy đủ đâu!
Mk cần dạng viết thuật toán theo kiểu liệt kê ạ, ko phải là viết hẳn ra chương trình đâu.
 

dangtiendung1201

Cựu Mod Toán
Thành viên
24 Tháng mười hai 2018
1,272
1,359
216
21
Thái Bình
THCS Lương Thế VInh-Thành phố Thái Bình
Viết thuật toán của đề bài "Xác định tính nguyên tố của 1 số dương".
(Làm theo cách khác với SGK ạ)

M.n giúp mk vs ạ, mk đag cần gấp ạ!! Thanks trước ạ!!
Nhập vào số nguyên n. In ra số nguyên tố <= n phải không?
Cái này mình viết từ những buổi đầu học pascal nên không được tối ưu. Bạn tham khảo.
Mã:
program nguyen_to;
Label hs,nt,nt2;

Const
     MaxN=100000000;
Var
     b:array[1..MaxN]of boolean;
     N,i,k:longint;
Begin
Read(N);
b[1]:=false;b[2]:=true;b[3]:=true;
i:=4;
hs:i:=i+1;
k:=2;
If i<=N then
Begin
For k:=2 to trunc(sqrt(i)) do
//nt:For k:=k+1 to trunc(sqrt(i)) do
Begin
   if i mod k =0 then
   Begin
   b[i]:=false;
   goto hs;
   End
   else
   Begin
   b[i]:=true;
   End;
     // goto hs;
     // goto hs;
End;
goto hs;
End;
For i:=1 to N do if b[i]=true then write(i,' ');
readln;
End.
 
Top Bottom