Ktl-icon-tai-lieu

Một số chuyên đề lập trình pascal

Được đăng lên bởi caohoalu84
Số trang: 19 trang   |   Lượt xem: 1620 lần   |   Lượt tải: 6 lần
CHƯƠNG VII
CHUYÊN ĐỀ CHIA HẾT – SỐ NGUYÊN TỐ.
A. LÝ THUYẾT: (HS tham khảo)
B. BÀI TOÁN:
Bài tập 7.1 :
Nhập vào một số nguyên dương n. Hãy in ra số nguyên tố nhỏ nhất lớn hơn n.
VD: Nhập n = 10. Kết quả in ra số 11.
Giải thuật :
- Gán i := n ;
- Thực hiện cho đến khi i là nguyên tố việc tăng i lên 1.
Program Nguyen_to;
Var n,i:integer;
Function NT(n:integer):Boolean;
Var ok: Boolean;
i: integer;
Begin
ok:=true;
for i:=2 to n-1 do
if (n mod i)= 0 then ok:=ok and false;
if n < 2 then NT:=false else NT:=ok;
End;
Begin
Write('Nhap n: ');Readln(n);
i:=n;
Repeat i:=i+1;
Until NT(i);
Write('So nguyen to nho nhat lon hon ',n, 'la: ',i);
Readln
End.
Bài tập 7.2 :
Nhập vào từ bàn phím số tự nhiên n (n<1000). Hãy phân tích n thành tích các
thừa số nguyên tố.
VD: Nhập vào n = 9 được 9 = 3.3
Thuật toán:
Gán i := 2;
Khi n > 1 thì lặp:
Nếu n chia hết cho i thì in ra i và gán lại n:= n div i. Ngược lại tăng i lên 1.
Program Phan_tich;
var n,i: integer;
Begin
Write('Nhap so can phan tich: ');Readln(n);
i:=2;
Write('Ket qua phan tich:');
Write(n,'=');
Trang 1

While n>1 do
Begin
if n mod i = 0 then Begin Write(i,'.'); n:= n div i End
else i:=i+1;
End;
Readln
End.
Nhận xét: Cài đặt trên in dư một dấu nhân ở cuối. Hãy chỉnh sửa để bỏ dấu nhân thừa
này.
Bài tập 7.3:
Tìm các số tự nhiên nhỏ hơn hoặc bằng n mà sau khi làm phép phân tích ra thừa
số nguyên tố có nhiều nhân tử nhất.
Ví dụ n=9 . Các số có nhiều nhân tử nhất sau khi làm phép phân tích là: 8 = 2.2.2
Thuật toán:
Cài đặt:
Program Phan_tich_nguyen_to_2;
Var n, Max, so, i:byte;
Function PTNT(n:integer):byte;
Var i,p:byte;
Begin
i:=2;
p:=0;
While n>1 do if (n mod i)=0 then Begin p:=p+1; n:=n
div i end else i:=i+1;
PTNT:=p;
End;
Procedure PT(n:integer);
Var i:byte;
Begin
i:=2;
While n>1 do
if (n mod i)=0 then
Begin Write(i,'.'); n:=n div i end else i:=i+1;
End;
Begin
Write('Nhap so n: ');Readln(n);
Max:=0;
For i:= 1 to n do if PTNT(i)>=Max then Begin
Max:=PTNT(i); So:=i End;
Write('So ',So,' co nhieu uoc nhat,',so,' = ');
PT(So);
Readln
End.
Bài tập 7.4:
Trang 2

Viết chương trình cho phép phân tích một số ra thừa số nguyên tố và ghi kết quả
dưới dạng tích các lũy thừa. Ví dụ: 300 = 2^2.3.5^2
Thuật toán:
Dùng một mảng để lưu lũy thừa. Mảng này có giá trị các phần tử ban đầu đều bằng 0.
Nếu n chia hết cho i thì tăng M[i] lên 1.
Khi in kiểm tra: Nếu M[i] >0 thì in i^M[i].
Cài đặt:
Program Phan_tich;
Var M: array[1..1000] of byte;
i: byte;
n: integer;
Begin
For i:=1 to 1000 do M[i]:=0;
Write('Nhap so n: ');Readln(n);
i:=2;
Wh...
CHƯƠNG VII
CHUYÊN ĐỀ CHIA HẾT – SỐ NGUYÊN TỐ.
A. LÝ THUYẾT: (HS tham khảo)
B. BÀI TOÁN:
Bài tập 7.1 :
Nhập vào một số nguyên dương n. Hãy in ra số nguyên tố nhỏ nhất lớn hơn n.
VD: Nhập n = 10. Kết quả in ra số 11.
Giải thuật :
- Gán i := n ;
- Thực hiện cho đến khi i là nguyên tố việc tăng i lên 1.
Program Nguyen_to;
Var n,i:integer;
Function NT(n:integer):Boolean;
Var ok: Boolean;
i: integer;
Begin
ok:=true;
for i:=2 to n-1 do
if (n mod i)= 0 then ok:=ok and false;
if n < 2 then NT:=false else NT:=ok;
End;
Begin
Write('Nhap n: ');Readln(n);
i:=n;
Repeat i:=i+1;
Until NT(i);
Write('So nguyen to nho nhat lon hon ',n, 'la: ',i);
Readln
End.
Bài tập 7.2 :
Nhập vào từ bàn phím s tự nhiên n (n<1000). Hãy phân tích n thành tích các
thừa số nguyên tố.
VD: Nhập vào n = 9 được 9 = 3.3
Thuật toán:
Gán i := 2;
Khi n > 1 thì lặp:
Nếu n chia hết cho i thì in ra i và gán lại n:= n div i. Ngược lại tăng i lên 1.
Program Phan_tich;
var n,i: integer;
Begin
Write('Nhap so can phan tich: ');Readln(n);
i:=2;
Write('Ket qua phan tich:');
Write(n,'=');
Trang 1
Một số chuyên đề lập trình pascal - Trang 2
Để xem tài liệu đầy đủ. Xin vui lòng
Một số chuyên đề lập trình pascal - Người đăng: caohoalu84
5 Tài liệu rất hay! Được đăng lên bởi - 1 giờ trước Đúng là cái mình đang tìm. Rất hay và bổ ích. Cảm ơn bạn!
19 Vietnamese
Một số chuyên đề lập trình pascal 9 10 212