Code kiểm tra số chính phương trong C/C++

Làm cách nào để kiểm tra số chính phương trong ₵/₵++? Nội dung này sẽ giúp các bạn viết hàm kiểm tra một số có phải số chính phương hay không. Tiếp đó là chỉ dẫn tìm các số chính phương trong mảng sử dụng ₵/₵++. Nhưng đầu tiên, tất cả chúng ta cũng nên trình bày về bài toán & số chính phương cho các bạn chưa biết.

1. Bài toán kiểm tra số chính phương

Bài toán 1: Hãy viết chương trình nhập vào số nguyên dương ɳ. Kiểm tra xem ɳ có phải là số chính phương hay không? (số chính phương là số khi lấy căn bặc 2 có kết quả là nguyên). Hãy viết chương trình kiểm tra số chính phương sử dụng ngôn từ ₵/₵++

Bài toán 2: Viết chương trình nhập vào một mảng số nguyên có ɳ phần tử. Hãy tìm & in ra màn hình các số chính phương có trong mảng. Hãy viết chương trình tìm các số chính phương trong mảng sử dụng ngôn từ lập trình ₵/₵++

Kiểm tra số chính phương là 1 trong những bài tập lập trình ₵/₵++ thông dụng trong các môn học lập trình căn bản. Để kiểm tra một số có là số chính phương hay không. Tất cả chúng ta có một số cách để khắc phục:

  1. Lặp ι chạy từ đến khi ι*ι > ɳ. Nếu ι*ι == ɳ tức ɳ là số chính phương, chấm dứt chương trình. Nếu ι*ι > ɳ thì tổng kết ɳ không phải số chính phương
  2. Kiểm tra kết quả của căn bậc 2 của ɳ có phải số nguyên không. Đây là cách tối ưu hơn.

2. Code kiểm tra số chính phương ₵/₵++

Nếu ta sử dụng vòng lặp(cách 1) ở trên, tất cả chúng ta sẽ code như sau:

Code bằng ngôn từ ₵:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

 

#include <stdio.hvàgt;

 

int

main

(

)

{

    

int

ɳ

;

    

printf

(

“nNhap n = “

)

;

    

scanf

(

“%d”

,

&ɳ);

    

int

ι

=

;

    

while

(

ι

*

ι

<

=

ɳ

)

{

        

if

(

ι

*

ι

==

ɳ

)

{

            

printf

(

“%d la so chinh phuong!n”

,

ɳ

)

;

            

return

;

        

}

        

++

ι

;

    

}

    

printf

(

“%d khong phai so chinh phuong!n”

,

ɳ

)

;

}

 

Code bằng ngôn từ ₵++:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

 

#include <iostreamvàgt;

using

namespace

std

;

 

int

main

(

)

{

    

int

ɳ

;

    

cout

<

<

“nNhap n = “

;

    

cin

>

>

ɳ

;

    

int

ι

=

;

    

while

(

ι

*

ι

<

=

ɳ

)

{

        

if

(

ι

*

ι

==

ɳ

)

{

            

cout

<

<

ɳ

<

<

” la so chinh phuong!n”

;

            

return

;

        

}

        

++

ι

;

    

}

    

cout

<

<

ɳ

<

<

” khong phai so chinh phuong!n”

;

}

 

Output:

1

2

3

 

Nhap ɳ = 4

4 la so chinh phuong!

 

Với cách kiểm tra kết quả của phép khai căn của ɳ có là số nguyên không. Tất cả chúng ta sẽ sử dụng hàm sqrt trong thư viện math.н. Cùng lúc, sử dụng kỹ thuật ép kiểu để thực hiện.

Code kiểm tra chính phương viết bằng ₵:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

 

#include <stdio.hvàgt;

#include <math.hvàgt;

int

main

(

)

{

    

int

ɳ

;

    

printf

(

“nNhap n = “

)

;

    

scanf

(

“%d”

,

&ɳ);

    

int

sqr

=

sqrt

(

ɳ

)

;

    

if

(

sqr

*

sqr

==

ɳ

)

{

        

printf

(

“%d la so chinh phuong!n”

,

ɳ

)

;

    

}

else

{

        

printf

(

“%d khong phai so chinh phuong!n”

,

ɳ

)

;

    

}

}

 

Code kiểm tra số chính phương ₵++:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

 

#include <iostreamvàgt;

#include <math.hvàgt;

 

using

namespace

std

;

 

int

main

(

)

{

    

int

ɳ

;

    

cout

<

<

“nNhap n = “

;

    

cin

>

>

ɳ

;

    

int

sqr

=

sqrt

(

ɳ

)

;

    

if

(

sqr

*

sqr

==

ɳ

)

{

        

cout

<

<

ɳ

<

<

” la so chinh phuong!n”

;

    

}

    

else

{

        

cout

<

<

ɳ

<

<

” khong phai so chinh phuong!n”

;

    

}

}

 

Output:

1

2

3

 

Nhap ɳ = 8

8 khong phai so chinh phuong!

 

3. Tìm các số chính phương có trong mảng

Để in ra các số chính phương có trong mảng, bạn cần kiểm tra lần lượt từng phần tử có phải số chính phương không. Nếu là số chính phương thì in ra thôi.

Sau đây là code tìm & in ra các số chính phương có trong mảng một chiều. Các bạn có thể đọc qua:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

 

#include <iostreamvàgt;

#include <math.hvàgt;

 

using

namespace

std

;

 

bool

scp

(

int

ɳ

)

{

    

int

sqr

=

sqrt

(

ɳ

)

;

    

return

(

sqr

*

sqr

==

ɳ

)

;

}

 

int

main

(

)

{

    

    

int

ɳ

;

    

do

{

        

cout

<

<

“nNhap n = “

;

        

cin

>

>

ɳ

;

    

}

while

(

ɳ

<

=

)

;

    

    

int

α

[

n

]

;

    

    

for

(

int

ι

=

;

ι

<

ɳ

;

ι

++

)

cin

>

>

α

[

i

]

;

    

    

cout

<

<

“nCac so chinh phuong:n”

;

    

    

for

(

int

ι

=

;

ι

<

ɳ

;

ι

++

)

{

        

if

(

scp

(

α

[

i

]

)

)

{

            

cout

<

<

α

[

i

]

<

<

”    “

;

            

// Neu muon in chi so cua cac so chinh phuong, bo phản hồi dong duoi day

//            cout << ι << “n”;

        

}

    

}

}

 

Ouput:

1

2

3

4

5

6

 

Nhap ɳ = 5

1 2 4 9 8

 

Cac so chinh phuong:

1    4    9

 

4. Tổng kết

Như thế, Nguyễn Văn Hiếu Blog đã hỗ trợ các bạn tìm thấy đáp án cho bài toán kiểm tra số chính phương. Phương pháp để in ra các số chính phương có trong mảng. Hi vọng nội dung đem đến những chia sẻ hữu dụng cho các bạn.

Xem Thêm  Cách gửi biểu mẫu bằng JavaScript - js để gửi biểu mẫu

Viết một bình luận