In ra các số chính phương nhỏ hơn n pascal

Home > Lập trình căn bản > Liệt kê các số chính phương nhỏ hơn n

Bài Tập Lập Trình Lập trình căn bản

Liệt kê các số chính phương nhỏ hơn n

Đinh Quang Trưởng - Lập trình C/C++

Đề bài:
Nhập vào 1 số nguyên n. Tìm các số chính phương nhỏ hơn n

Dưới đây là đoạn code tham khảo:

#include<iostream.h>
#include<math.h>

int KiemTraChinhPhuong(int n)
{
return sqrt(float(n)) == (int)sqrt((float)n);
}

void LietKeChinhPhuong(int n)
{
for(int i = 2; i < n; i++)
{
if(KiemTraChinhPhuong(i) == true)
cout<<i<<"   ";
}
}
int main()
{
int n;
cout<<"Moi nhap n";
cin>>n;
LietKeChinhPhuong(n);
}

Kết quả của chương trình :

In ra các số chính phương nhỏ hơn n pascal

Theo Đinh Quang Trưởng
In ra các số chính phương nhỏ hơn n pascal

Bài Tập Lập Trình Lập trình căn bản 6:25 PM

Posted by f at 6:25 PM

Toán học là bộ môn đòi hỏi sự chính xác cao và tư duy logic hợp lý. Đây được coi là môn thể thao dành cho bộ não vì các kiến thức về toán học là vô hạn. Bài viết hôm nay chonmuamay.com sẽ đề cập đến số chính phương là gì và các vấn đề liên quan. Nếu các bạn yêu thích toán học thì đừng bỏ qua bài viết này nhé!

Contents

  • 1 Định nghĩa số chính phương là gì?
  • 2 Tính chất số chính phương là j?
  • 3 Ví dụ và cách chứng minh số chính phương
  • 4 Cách tìm số chính phương
    • 4.1 Kiểm tra số chính phương trong C
    • 4.2 Kiểm tra số chính phương Pascal

Định nghĩa số chính phương là gì?

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.

In ra các số chính phương nhỏ hơn n pascal
Số chính phương là số gì?

Một số chính phương sẽ được gọi là số chính phương chẵn nếu như nó là bình phương của một số tự nhiên chẵn. Và ngược lại, một số chính phương được gọi là số chính phương lẻ nếu như bình phương của nó là một số lẻ.

Tính chất số chính phương là j?

  • Các số chính phương bao gồm những số có chữ số tận cùng là 0, 1, 4, 5, 6, 9.  Chính vì vậy nếu bạn nào thắc mắc 1 có phải là số chính phương hay không thì câu trả lời là: 1 cũng là một số chính phương và chính phương nhỏ nhất chính là số 0.
  • Nếu các số có tận cùng là 2, 3, 7, 8 thì không được coi là 1 số chính phương.
  • Nếu thực hiện phân tích ra thừa số nguyên tố, số chính phương chỉ chứa các thừa số nguyên tố với số mũ là số chẵn.
  • Số chính phương chỉ có thể tồn tại ở 1 trong 2 dạng: 4n hoặc 4n + 1. Không có số chính phương nào có dạng như: 4n + 2 hoặc 4n + 3 (với n € tập số tự nhiên).
  • Số chính phương cũng chỉ có thể có 1 trong 2 dạng là 3n hoặc 3n + 1, không có số chính phương nào có hình thức là 3n + 2 (với n € N).
  • Nếu số chính phương có chữ số tận cùng là 1 hoặc 9 thì chữ số hàng chục sẽ là chữ số chẵn.
  • Số chính phương tận cùng là 5 thì chữ số hàng chục sẽ là 2.
  • Số chính phương tận cùng bằng 4 thì chữ số ở hàng chục là chữ số chẵn.
  • Số chính phương tận cùng bằng 6 thì chữ số ở hàng chục phải là chữ số lẻ.
  • Số chính phương nếu chia hết cho 2 thì cũng sẽ chia hết cho 4.
  • Số chính phương mà chia hết cho 3 thì cũng chia hết cho 9.
  • Số chính phương chia hết cho 5 thì chắc chắn chia hết cho 25.
  • Số chính phương mà chia hết cho 8 thì cũng chia hết cho 16.
  • Số chính phương chia cho 3 không bao giờ có số dư là 2; chia cho 4 cũng không bao giờ có số dư là 2 hoặc 3. Vậy số chính phương chia 8 dư mấy? Số chính phương là số lẻ khi chia 8 sẽ luôn dư 1.
In ra các số chính phương nhỏ hơn n pascal
Bạn đã hiểu tính chất của số chính phương?

Ví dụ và cách chứng minh số chính phương

Các chuyên đề toán mà chúng ta từng được học ở trung học đã đưa ra rất nhiều dạng bài tập về số chính phương. Dựa theo khái niệm và tính chất đã đề cập phía trên, ta có một số ví dụ cụ thể về số chính phương như sau:

Những số 4, 9, 16, 25, 36, 49, 64, 81, 144, 225, 576 đều là các số chính phương. 

  • 4= 22 được coi là một số chính phương chẵn
  • 9= 3được coi là một số chính phương lẻ
  • 16= 42 được coi là một số chính phương chẵn
  • 25 = 52 được coi là một số chính phương lẻ
  • 36= 62 được coi là một số chính phương chẵn
  • 225 = 152 được coi là một số chính phương lẻ
  • 289 = 172 được coi  là một số chính phương lẻ
  • 576 = 242 được coi là một số chính phương chẵn
  • 1.000.000= 1.0002 được coi là một số chính phương chẵn

Để bạn có thể hiểu rõ hơn về tính chất của số chính phương. Hãy cùng nhau tìm hiểu thông qua bài tập ví dụ dưới đây:

Ví dụ: Chứng minh một số chính là số chính phương: Với mọi số tự nhiên n thì an = n(n+1)(n+2)(n+3) + 1 là một số chính phương.

Bài giải:

Ta có:

an = n(n+1)(n+2)(n+3) + 1

= (n2 + 3n)(n2 + 3n + 2) +1

= (n2 + 3n)2+ 2(n2 + 3n) + 1

= (n2 + 3n + 1)2

Với n € N thì (n2 + 3n + 1)2 cũng là số tự nhiên, vì vậy, an là 1 số chính phương.

Cách tìm số chính phương

Kiểm tra số chính phương trong C

In ra các số chính phương nhỏ hơn n pascal
Thuật toán kiểm tra số chính phương C++ là gì?

Thuật toán tìm số chính phương là một trong những thuật toán rất căn bản khi bạn mới bắt đầu học lập trình. Nó giúp người học có thể rèn luyện được tính tư duy logic của bản thân. Để xác định được một số có là số chính phương hay không. Chúng ta thường sử dụng hai cách dưới đây:

  •  Kiểm tra số chính phương bằng phương pháp dùng vòng lặp.
  •  Sử dụng hàm kiểm tra số chính phương sqrt() trong thư viện math.h. Đây được coi là cách tối ưu hơn cả.

Cách 1: Sử dụng vòng lặp.

  • Lặp i chạy từ 0 đến khi i*i > n. Nếu i * i = n thì n chính là một số chính phương, sau đó kết thúc chương trình.
  • Nếu i * i > n thì n sẽ không phải là một số chính phương.

* Lưu ý: Trong vòng lặp này cần có bước nhảy ++i, chính vì vậy bạn cần cho bước nhảy vào trong vòng lặp, nếu không vòng lặp sẽ không được lặp đúng như mong muốn.

In ra các số chính phương nhỏ hơn n pascal

Cách 2: Kiểm tra bằng hàm

Thao tác kiểm tra này đơn giản hơn rất nhiều so với cách sử dụng vòng lặp ở trên. Trong thư viện math.h có 1 hàm được sử dùng chỉ để tính căn bậc hai, đó chính là hàm sqrt().

Chúng ta sẽ sử dụng hàm sqrt() để đặt điều kiện cho số n. Nếu sqrt(n) * sqrt(n) = n, thì n chính là số chính phương và ngược lại.

In ra các số chính phương nhỏ hơn n pascal

Kiểm tra số chính phương Pascal

In ra các số chính phương nhỏ hơn n pascal
Số chính phương trong Pascal

Ngoài cách dùng hàm và vùng lặp đã đề cập ở trên, bạn cũng có thể sử dụng cách viết chương trình kiểm tra số chính phương Pascal. 

Program so_chinh_phuong;

uses crt;

Var n,x: integer;

BEGIN

clrscr;

write(‘Nhap so ma ban can kiem tra: n = ‘);

readln(n);

x:=trunc(sqrt(n);

IF sqr(x)=n then write(n,’la so chinh phuong);

ELSE write(n,’ khong phai la mot so chinh phuong.’);

readln;

END.

Hy vọng bài viết trên đây đã giúp bạn hiểu thế nào là số chính phương và giúp cho công việc học tập cũng như nghiên cứu của bạn thêm phần thuận lợi hơn. Nếu còn bất cứ thắc mắc nào cần được trao đổi thì hãy để lại bình luận trong phần dưới đây, chúng tôi sẽ hỗ trợ bạn một cách nhanh chóng và kịp thời nhất.