Thân cây (sqrt (n)) pascal

Bài toán kiểm tra một số có phải là số nguyên tố không là một bài toán hết sức cơ bản khi bạn học bất kì một ngôn ngữ lập trình nào, trong bài viết này mình chia sẻ với các bạn thuật toán kiểm tra số nguyên tố trong pascal đơn giản và dễ hiểu nhất, nó không phải là thuật toán tối ưu nhưng dễ hiểu và phù hợp với đối tượng học sinh THCS dưới đây hãy tham khảo với onthihsg để có cách tìm số nguyên tố

Video thuật toán kiểm tra số nguyên tố

Những bài viết liên quan

  • Viết thư cho bạn thân của em – Văn mẫu lớp 3

    5 phút trước

  • Bồi dưỡng HSG chủ đề Tuần Hoàn Máu môn Sinh học 8 năm 2021

    11 phút trước

  • Bài tập từ trái nghĩa trong Tiếng Anh ôn thi vào 10 có đáp án

    19 phút trước

Nội dung bài toán kiểm tra số nguyên tố trong pascal

Viết chương trình kiểm tra một số n (n <2 tỉ) có phải là số nguyên tố hay không

Hướng dẫn Hàm kiểm tra số nguyên tố

Dữ liệu vào nhà thơ. nguyễnto. inpDữ liệu ra file. nguyễnto. outChứa số nYes (No)

Ý tưởng của thuật toán. Kiểm tra đúng như định nghĩa số nguyên tố, ta chỉ cần xem số đó có lớn hơn 1 không và có bao nhiêu ước, nếu chỉ có hai ước thì là số nguyên tố còn ngược lại thì không phải

Thuật toán tìm số nguyên tố

Thân cây (sqrt (n)) pascal
Thân cây (sqrt (n)) pascal

Chương trình viết hàm kiểm tra số nguyên tố viết bằng Free pascal

program 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.

Hầu hết những chương trình mà mình viết đều sử dụng chương trình con, theo mình nên tập cho học sinh thói quen như vậy ngay từ những bài tập đầu tiên

Bạn cũng có thể tham khảo chương trình kiểm tra số nguyên tố trong Scratch

Sau khi học sinh nắm được thuật toán kiểm tra số nguyên tố ta có thể phát triển thêm một số bài toán liên quan như sau

Một số bài toán về số nguyên tố

Vịnh 1. 1. Viết chương trình nhập vào một số n, xuất ra những số nguyên tố nhỏ hơn hoặc bằng n và tổng của tất cả những số nguyên tố đó

Dữ liệu vào nhà thơ. Sum_nt. inpDữ liệu ra file. Sum_nt. outChứa số n– Dòng 1. chứa các số nguyên tố <=n cách nhau 1 khoảng trắng

– Dòng 2. Chứa tổng các số nguyên tố trên

Bài tập trên mình yêu cầu học sinh sử dụng chương trình co để giải quyết qua đó rèn luyện cho học sinh tư duy kế thừa

Ý tưởng của thuật toán

  • Có một chương trình con kiểm tra số nguyên tố
  • Ta chỉ cần duyệt từ 1 đến n xem có số nào là số nguyên tố không để đếm và cộng dồn
program Dem_nguyen_to;
var m,k,s: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,'sum_nt.inp'); reset(f);
	read(f,m);close(f);
{----Mo file de ghi----}
	assign(f,'sum_nt.out'); rewrite(f);

  k:=1; S:=0;
  while k<=m do
    begin
      if ngto(k) then begin write(f,k,' ');  s:=s+k; end;
      k:=k+1;
    end;

	writeln(f);
	write(f,S);
close(f);
end.

Vịnh 1. 2. Viết chương trình phân tích một số tự nhiên n (n <2 tỉ) ra thừa số nguyên tố

Dữ liệu vào nhà thơ. pt_nt. inpDữ liệu ra file. pt_nt. outChứa số n

VD. 100

1 dòng. chứa kết quả

VD. 2. 2. 5. 5

Đối với bài toán này ta chia số đó (nếu chia hết) cho số nguyên tố (duyệt từ số nguyên tố nhỏ đến lớn)

Trong bài viết này mình sẽ giới thiệu với các bạn về thuật toán kiểm tra số chính phương trong Pascal và scratch và một số bài tập có liên quan

Các bạn đã biết số chính phương pascal  là số viết được dưới dạng bình phương của một số tự nhiên chẳng hạn 0, 1, 4, 9, 16, 25, … số chính phương được ứng dụng rất nhiều trong toán học, thuật toán kiểm tra số chính phương thì lại hết sức đơn giản bên dưới với onthihsg nhé.

Những bài viết liên quan

  • Viết thư cho bạn thân của em – Văn mẫu lớp 3

    5 phút trước

  • Bồi dưỡng HSG chủ đề Tuần Hoàn Máu môn Sinh học 8 năm 2021

    11 phút trước

  • Bài tập từ trái nghĩa trong Tiếng Anh ôn thi vào 10 có đáp án

    19 phút trước

Video hướng dẫn kiểm tra số chính phương pascal

Hướng dẫn về số chính phương pascal

Số chính phương Tiếng Anh là “Square numbers”. Đây là loại số có căn bậc hai bằng đúng của một số nguyên. Hay các bạn cũng có thể hiểu đơn giản là. số chính phương là một số tự nhiên có căn bậc hai cũng sẽ phải là một số tự nhiên. Về bản chất, số chính phương là bình phương của một số tự nhiên nào đó. Hay số chính phương chính bằng diện tích của một hình vuông với cạnh là số nguyên kia. Với số nguyên bao sẽ gồm các số nguyên dương, nguyên âm cùng số 0

Hàm kiểm tra số chính phương trong pascal

Dưới đây là hàm kiểm tra số chính phương. readln(n); . =trunc(sqrt(n); IF sqr(x)=n then write(n,’la so chinh phuong); ELSE write(n,’ khong phai la mot so chinh phuong

Thuật toán kiểm tra số chính phương

Vì căn bậc hai và bình phương là hai phép toán ngược nhau nên mình lợi dụng điều này để xây dựng thuật toán kiểm tra số chính phương.

Thân cây (sqrt (n)) pascal
Thân cây (sqrt (n)) pascal

Nôm na như thế này nhé, mình muốn kiểm tra xem số 5 có phải là số chính phương không thì mình tính căn bậc hai của 5, sau đó chỉ lấy phần nguyên thôi kết quả là 2, lại lấy 2 bình phương lại ta được 4, 4 không bằng 5 nên 5 không phải là số chính phương

Thuật toán có thể ghi ngắn gọn lại như sau

” Nếu bình phương của phần nguyên của căn bậc hai của n đúng bằng n thì n là số chính phương còn không thì n không phải là số chính phương”

Câu chữ hơi nhiều “ngoặc” vì vậy bạn hãy ngẫm nghĩ cho kĩ để hiểu thuật toán

Chương trình kiểm tra số chính phương trong pascal


Trong chương trình có lệnh sqr(trunc(sqrt(n))) ý nghĩa như sau;

vuông(n). Hàm tính bình phương của n

thân cây(x). Cho phần nguyên của x

sqrt(n). Tính căn bậc hai của n

Như vậy  sqr(trunc(sqrt(n)))  tính  bình phương của phần nguyên của căn bậc hai của n

Viết chương trình kiểm tra số chính phương trong pascal nâng cao

Program KT_Sochinhphuong;
Uses crt;
Type ArrInt = array[1. 250] of integer;
Var N,i,x. integer;
A. ArrInt;
Procedure Nhap_Mang(Var A. ArrInt;Var N. integer);
Var i. integer;
Begin
Write(‘Nhap chieu dai cua mang. ‘);
Readln(N);
For i. =1 to N do
Begin
Write(‘Nhap gt phan tu thu a[‘,i,’]=’);
Readln(A[i]);
End;

End;
Procedure KT_So_Chinh_Phuong(Var A. ArrInt;Var N. integer);
Var i. integer;
Begin
Writeln(‘Cac so chinh phuong co trong mang A. ‘);
For i. =1 to N do
Begin
x. =trunc(sqrt(A[i]));
if sqr(x)=a[i] then
Write(A[i]. 4);
End;
End;

Begin
Nhap_Mang(A,N);
KT_So_Chinh_Phuong(A,N);
Readln;
End.

Ở đây lệnh trong Scratch hơi khác trong Pascal một chút nhưng thuật toán thì không có gì thay đổi, hàm  “làm tròn xuống” trong Scratch giống như hàm  trunc() trong Pascal

Bài tập luyện tập liên quan đến số chính phương

Các bạn hãy luyện tập chương trình sau để ôn lại cách sử dụng chương trình con, thuật toán cộng dồn và thuật toán kiểm tra số chính phương

bài tập 1. Viết chương trình nhập vào một số n (n <2 tỉ), xuất ra những số chính phương nhỏ hơn hoặc bằng n và tổng của chúng

Dữ liệu vào nhà thơ. Tim_cp. inpDữ liệu ra file. Tim_cp. outChứa số n (n <2 tỉ)Dòng 1. Dãy các số chính phương

sê-ri 2. Tổng số hẹp

Xin chào và hẹn gặp lại các bạn trong bài viết về số hoàn hảo

Bài tập 2. Viết chương trình pascal nhập N từ bàn phím. Đếm xem có bao nhiêu số chính phương từ 1 tới n (sử dụng câu lệnh lặp và câu lệnh điều kiện) đơn giản thôi nha. Dưới đây là viết chương trình kiểm tra số chính phương pascal