if n<2 then write('So ',n,' khong la so nguyen to')
else
begin
ok:=true;
for i:=2 to trunc(sqrt(n)) do
if n mod i=0 then ok:=false;
if ok then writeln('So ',n,' la so nguyen to')
else writeln('So ',n,' khong la so nguyen to');
end;
readln
END.
Có thể thay câu lệnh lặp “for i:=2 to trunc(sqrt(n)) do” bằng câu lệnh while..do..khi đó ta
không cần biến ok nữa.
Bài 6: Nhập n,a hãy tính căn bậc n của a:
Uses crt;
var n:integer;a,s:real;
BEGIN
clrscr;
write('Nhap a: ');readln(a);
repeat
write('Nhap n: ');readln(n);
until (n>0);
if (n mod 2=0) and (a>=0) then
begin
s:=exp(1/n*ln(a));
writeln('Ket qua la: ',s:0:4);
end
else if (n mod 2<>0) then
begin
s:=exp(1/n*ln(abs(a)));
writeln('Ket qua la: ',s:0:4);
end
else writeln('Khong xac dinh');
readln
END.
Bài 7: Nhập số có 3 chữ số tính tổng các chữ số của nó:
Uses crt;
var a:integer;tong:byte;
BEGIN
clrscr;
write('Nhap 1 so co 3 chu so: ');readln(a);
tong:= a mod 10;
a:=a div 10;
tong:=tong+a mod 10;
a:=a div 10;
tong:=tong+a mod 10;
writeln('Tong cac chu so do la: ',tong);
readln
END.
Bài 8: Nhập 2 số nguyên, hoán vị 2 số đó khi a>b
Uses crt;
var a,b,tg:integer;
BEGIN
clrscr;
write('Nhap a: ');readln(a);
write('Nhap b: ');readln(b);
if a>b then
begin
tg:=a;
a:=b;
b:=tg;
end;
writeln(a,' ',b);
readln
END.
Bài 9:Nhập số nguyên dương n in ra tổng các số nguyên dương là bội của 3 hoặc 5 từ 1—>n
Uses crt;
var n,tong,i:integer;
BEGIN
clrscr;
write('Nhap so nguyen duong n: ');readln(n);
tong:=0;
for i:=1 to n do
if (i mod 3=0) or (i mod 5=0) then
tong:=tong+i;
writeln('Tong cac so chia het cho 3 hoac 5 tu 0--> ',n,' la: ',tong);
readln
END.
Bài 10: Nhập n in ra tổng các chữ số của n:
Uses crt;
var n,m:longint;tong:byte;
BEGIN
clrscr;
write('Nhap n: ');readln(n);
tong:=0;m:=n;
while m>0 do
begin
tong:=tong+m mod 10;
m:=m div 10;
end;
writeln('Tong cac chu so cua ',n,' la: ',tong);
readln
END.
Bài 11: Số nguyên tố là số nguyên dương chỉ chia hết cho 1 và chính nó, ngoại trừ 0 và 1.
Lập trình nhập vào 1 số nguyên dương n và kiểm tra xem nó có phải là số nguyên tố không?
Uses crt;
var n,i:integer;
BEGIN
clrscr;
write('Nhap so nguyen duong n: ');
readln(n);
if n<2 then writeln(n,' khong la so nguyen to')
else
begin
i:=2;
while ((i<=trunc(sqrt(n))) and (n mod i<>0)) do
i:=i+1;
if i>trunc(sqrt(n)) then writeln(n,' la so nguyen to')
else writeln(n,' khong la so nguyen to');
end;
readln
END.
Bài 12: Số hoàn hảo là số mà có tổng các ước của nó không kể nó bằng chính nó.
VD: Số 28 có các ước là: 1 2 4 7 14
Số 6 có các ước là: 1 2 3
Lập trình nhập vào 1 số nguyên dương n và kiểm tra xem số đó có là số hoàn hảo không?
Uses crt;
var n:longint;tong,i:integer;
BEGIN
clrscr;
write('Nhap so nguyen duong n: ');readln(n);
tong:=0;
for i:=1 to n div 2 do
if n mod i=0 then tong:=tong+i;
if tong=n then writeln(n,' la so hoan hao')
else writeln(n,'khong la so hoan hao');
readln
END.
Bài 13: Số chính phương là số có căn bậc 2 là 1 số nguyên.
VD số 9 là số chính phương vì căn bậc 2 của 9 bằng 3.
Lập trình nhập 1 số nguyên dương n từ bàn phím kiểm tra xem số đó có là số chính phương không?
Uses crt;
var n:longint;
BEGIN
clrscr;
write('Nhap so nguyen duong n: ');readln(n);
if sqrt(n)=trunc(sqrt(n)) then writeln(n,' la so chinh phuong')
else writeln(n,' khong la so chinh phuong');
readln
END.
Bài 14: Nhập vào 1 xâu kí tự và cho biết xâu vừa nhập vào có bao nhiêu nguyên âm và bao nhiêu Kí tự số.
Uses crt;
var s:string;dem1,dem2,i:byte;
BEGIN
clrscr;
write('Nhap 1 xau: ');readln(s);
dem1:=0;dem2:=0;
for i:=1 to length(s) do
begin
if s[i] in ['a','e','i','o','u','y','A','E','I','O','U','Y'] then dem1:=dem1+1;
if s[i] in ['0','1','2','3','4','5','6','7','8','9'] then dem2:=dem2+1;
end;
writeln('Trong xau ',s,' co ',dem1,' nguyen am va co ',dem2,' ki tu so');
readln
END.
Bài 15: Lập trình giải bài toán cố sau:
Vừa gà vừa chó Bó lại cho tròn Ba mưoi sáu con Một trăm chân chẵn
Uses crt; var cho:byte; BEGIN clrscr; for cho:=1 to 25 do if 4*cho+(36-cho)*2=100 then writeln('So ga la: ',36-cho,' so cho la: ',cho); readln END.
Bài 16: Nhập 1 số nguyên dương n <1000 cho biết có bao nhiêu số nguyên tố từ 0 đến N
Uses crt; var n,i,j,dem:integer;
BEGIN clrscr; write('Nhap so nguyen duong n: ');readln(n); dem:=0; for i:=2 to n do begin j:=2; while ((j<=trunc(sqrt(i))) and (i mod j<>0)) do j:=j+1; if j>trunc(sqrt(i)) then dem:=dem+1; end; writeln('So luong so nguyen to trong khoang tu 0-->',n,' la: ',dem); readln END.
Bài 17: Nhập 1 số n kiểm tra tính chẵn lẻ, xem số đó có chia hết cho 3 không,tổng các chữ số của nó có là bội của 6 không?
uses crt; var n,m,tong:integer;
BEGIN clrscr;
write('Nhap n: ');readln(n); if n mod 3=0 then writeln(n,' chia het cho 3') else writeln(n,' khong chia het cho 3'); m:=n;tong:=0; while m>0 do begin tong:=tong+m mod 10; m:=m div 10; end;
if tong mod 6=0 then writeln('Tong cac chu so cua ',n,' la ',tong,' chia het cho 6') else writeln('Tong cac chu so cua ',n,' la ',tong,' khong chia het cho 6'); readln END.
Bài 18: Tính tổng n số Fibonaci: F0=F1=1;Fi=Fi-1+Fi-2. (với mọi i>1).
Uses crt; var f,ft,ftn,tong:longint; n,i:integer;
BEGIN clrscr;
write('Nhap n: ');readln(n);
ft:=1;ftn:=1;tong:=2;
for i:=2 to n do
begin
f:=ft+ftn;
tong:=tong+f;
ftn:=ft;
ft:=f;
end;
writeln('Tong n so hang dau day Fibolaci la: ',tong);
readln
END.
Có thể biến đổi đề bài của bài toán đi như: tính số Fibonaci thứ n hoặc nhập vào 1 số kiểm tra xem số đó có phải là số Fibonaci hay không…Các bài đó làm tương tự.
Bài 19: Nhập số nguyên dương n lập chương trình tính: S1= 1+3+5+7+…+(2*n+1)
Uses crt; var i,n,s1:integer;
BEGIN clrscr; write('Nhap n: ');readln(n); s1:=0; for i:=1 to 2*n+1 do if i mod 2<>0 then s1:=s1+i; writeln('Tong S1 la: ',s1); readln END.
Bài 20: Tính S2=13+23+33+…+n3 trong đó n nhập từ bàn phím.
Uses crt; var i,n:integer;s2:longint;
BEGIN clrscr;
write('Nhap so n: ');readln(n);
s2:=0; for i:=1 to n do s2:=s2+i*i*i; writeln('Tong S2 la: ',s2); readln END.
Bài 21: Nhập 2 số n,m sao cho m<n lập trình tính S3= Cnm = (n(n-1)…(n-m+1))/m! (Tổ hợp chập m của n)
Uses crt;
var i,m,n,tu,mau:integer;
s3:longint;
BEGIN clrscr; repeat write('Nhap n: ');readln(n); until n>0;
repeat write('Nhap m: ');readln(m); until (m<=n) and (m>0); tu:=1;mau:=1; for i:=n-m+1 to n do tu:=tu*i; for i:=2 to m do mau:=mau*i; s3:= tu div mau; writeln('to hop chap ',m,' cua ',n,' la: ',s3); readln
END.
Bài 22:Nhập số thực dương e(e<0.01) rồi tính tổng S4=1+1/22+1/32+…+1/n2 +… (chương trình kết thúc khi 1/n2<e)
Uses crt; var s4,e:real;i:integer;
BEGIN clrscr; repeat write('Nhap so thuc duong e<0.01: '); readln(e); until (e>0) and (e<0.01); s4:=0;i:=1; while 1/(i*i)>e do begin s4:=s4+1/(i*i); i:=i+1; end; writeln('Ket qua la: ',s4:0:4); readln END.
Bài 23: Nhập số thực dương e(e<0.01) rồi tính tổng S5= 1- 1/3+1/5-1/7+…+(-1)n/(2*n+1)(dừng khi 1/(2*n+1) <e)
Lời giải:
uses crt;
var s5,e:real;i:integer;
BEGIN
clrscr;
repeat
write('Nhap so thuc duong e<0.01: ');
readln(e);
until (e>0) and (e<0.01);
s5:=1;i:=1;
while 1/(2*i+1)>e do
begin
if i mod 2=0 then s5:=s5+1/(2*i+1) else s5:=s5-1/(2*i+1);
i:=i+1;
end;
writeln('ket qua la: ',s5:0:4);
readln
END.
Bài 24: Lập chương trình để nhập vào 4 dãy số a1,..,an;b1,…bn;c1,…,cn;d1,…,dn.
Sau đó in ra kết quả n dòng 6 giá trị theo mẫu sau: Ai bi ci di max(ai,bi,ci,di) min(ai,bi,ci,di)
Uses crt; var a,b,c,d: Array [1..1000]of integer; n,max,min,i:integer;
BEGIN clrscr;
write('Nhap n: ');readln(n);
for i:=1 to n do
begin
write('Nhap A[',i,']: ');
readln(a[i]);
write('Nhap B[',i,']: ');
readln(b[i]);
write('Nhap C[',i,']: ');
readln(c[i]);
write('Nhap D[',i,']: ');
readln(d[i]);
end;
for i:=1 to n do
begin
write(a[i],' ',b[i],' ',c[i],' ',d[i],' ');
max:=a[i];min:=a[i];
if b[i]>max then max:=b[i];
if c[i]>max then max:=c[i];
if d[i]>max then max:=d[i];
write(max,' ');
if b[i]<min then min:=b[i];
if c[i]<min then min:=c[i];
if d[i]<min then min:=d[i];
writeln(min);
end;
readln
END.
Bài 25: Cho các số tự nhiên n (khai bảo longint), và cho biết: n có bao nhiêu chữ số, tổng các chữ số của n và số đảo ngược của n. VD: số 123 có 3 chữ số, tổng các chữ số bằng 6, số đảo ngược là 321
Uses crt; var m,n:longint;tong,dem:byte;
BEGIN clrscr;
write('Nhap so n: ');readln(n);
m:=n;dem:=0;tong:=0;
while m>0 do
begin
tong:=tong+ m mod 10;
dem:=dem+1;
m:=m div 10;
end;
writeln(n,' co ',dem,' chu so va tong cac chu so cua ',n,' la: ',tong);
write('So dao nguoc cua ',n,' la: ');
m:=n;
while m>0 do
begin
write(m mod 10);
m:=m div 10;
end;
readln
END.
Bài 26: Nhập số nguyên dương n và dãy số a1,a2,…,an hãy in ra max, min dãy đó
Uses crt; var n,i,max,min:integer; a:array[1..1000] of integer;
BEGIN
clrscr;
repeat
write('Nhap so nguyen duong n: ');
readln(n);
until (n>0) and (n<=1000);
for i:=1 to n do
begin
write('Nhap A[',i,']: ');
readln(a[i]);
end;
max:=a[1];min:=a[1];
for i:=2 to n do
begin
if a[i]>max then max:=a[i];
if a[i]<min then min:=a[i];
end;
writeln('Max cua day so la: ',max);
writeln('Min cua day so la: ',min);
readln
END.
Bài 27: Nhập số nguyên dương n và dãy số a1,a2,…,an. Hãy sắp xếp dãy đó tăng dần và in dãy đã được sắp xếp ra màn hình.
Uses crt;
var n,i,j,tg:integer;
a:array[1..1000]of integer;
BEGIN
clrscr;
repeat
write('Nhap so nguyen duong n: ');
readln(n);
until (n>0) and (n<1000);
for i:=1 to n do
begin
write('Nhap A[',i,']: ');readln(a[i]);
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
end;
writeln('Day sau khi duoc sap xep la: ');
for i:=1 to n do
write(a[i]:4);
readln
END.
{Tương tự với bài sắp xếp với dãy giảm dần.}
Bài 28. Viết chương trình Pascal tìm USCLN và BSCNN cùa 2 số nguyên dương:
Program USCLN_BSCNN;
Var so1,so2:Word; p:LongInt; tiep:Char;
Begin
Writeln('TINH UOC SO CHUNG LON NHAT, BOI SO CHUNG NHO NHAT');