คณิตศาสตร์และการเขียนโค้ดไปด้วยกัน — ตัวเลขมีอยู่ทุกที่ในโปรแกรมมิ่ง ไม่ว่าคุณจะตรวจสอบว่าหมายเลขเป็นจำนวนเฉพาะหรือไม่ สร้างลำดับฟีโบนัชชี หรือค้นหาจำนวนพาลินโดรม ความท้าทายเล็กๆ เหล่านี้จะช่วยเพิ่มทักษะทางคณิตศาสตร์และตรรกะการเขียนโค้ดของคุณ. 

ในบทความนี้ เราจะสำรวจ แบบฝึกหัดการเขียนโปรแกรมที่เป็นมิตรกับผู้เริ่มต้น 20 แบบที่อิงจากตัวเลข สำหรับแต่ละแบบ คุณจะได้รับคำอธิบายสั้นๆ เกี่ยวกับแนวคิดทางคณิตศาสตร์ ตัวอย่างข้อมูลนำเข้าและผลลัพธ์ และโซลูชัน Python ที่พร้อมใช้งาน นี่เป็นวิธีที่สนุกในการฝึกเขียนโค้ดในขณะที่เรียนรู้ว่าแนวคิดทางคณิตศาสตร์ เช่น สี่เหลี่ยมสมบูรณ์ ลูกบาศก์ และจำนวนสามเหลี่ยม สามารถมีชีวิตชีวาในโค้ดได้อย่างไร.

1. ผลรวมของจำนวนธรรมชาติ N แรก

แบบฝึกหัดต้องการอะไร:

เขียนโปรแกรมเพื่อหาผลรวมของจำนวนธรรมชาติ n แรก นี่จะช่วยให้คุณฝึกฝนการใช้ลูปหรือสูตรทางคณิตศาสตร์.

จำนวนธรรมชาติคืออะไร?

จำนวนธรรมชาติคือจำนวนที่ใช้ในการนับเริ่มจาก 1: 1, 2, 3, 4, …

ตัวอย่างข้อมูลนำเข้า

5

ตัวอย่างผลลัพธ์

15

โซลูชัน Python

# อ่าน n และคำนวณผลรวมของจำนวนธรรมชาติ n แรกโดยใช้สูตรแบบปิด
n = int(input("ป้อน n: "))
# ใช้การคำนวณจำนวนเต็ม (//) เพื่อหลีกเลี่ยงจำนวนทศนิยม
total = n * (n + 1) // 2
print(total)

2. ตัวตรวจสอบจำนวนคู่หรือคี่

แบบฝึกหัดต้องการอะไร:

รับข้อมูลจำนวนเต็มและพิมพ์ว่ามันเป็นจำนวนคู่หรือคี่.

จำนวนคู่/คี่คืออะไร?

จำนวนคู่คือจำนวนที่หารด้วย 2 ลงตัว (เช่น 2, 4, 6) จำนวนคี่จะมีเศษ 1 เมื่อหารด้วย 2 (เช่น 1, 3, 5).

ตัวอย่างข้อมูลนำเข้า

7

ตัวอย่างผลลัพธ์

7 is odd

โซลูชัน Python

# ตรวจสอบว่าจำนวนเต็มที่ป้อนเป็นจำนวนคู่หรือคี่โดยใช้โมดูล
n = int(input("ป้อนหมายเลข: "))
if n % 2 == 0:
    print(f"{n} เป็นจำนวนคู่")
else:
    print(f"{n} เป็นจำนวนคี่")

3. ตัวตรวจสอบจำนวนเฉพาะ

แบบฝึกหัดต้องการอะไร:

เขียนโปรแกรมเพื่อตรวจสอบว่าหมายเลขที่กำหนดเป็นจำนวนเฉพาะหรือไม่.

จำนวนเฉพาะคืออะไร?

จำนวนเฉพาะคือจำนวนที่มากกว่า 1 และหารได้เฉพาะ 1 และตัวมันเอง (เช่น 2, 3, 5, 7).

ตัวอย่างข้อมูลนำเข้า

13

ตัวอย่างผลลัพธ์

13 is prime

โซลูชัน Python

# ตรวจสอบความเป็นจำนวนเฉพาะโดยพยายามหารจนถึง sqrt(n)
n = int(input("ป้อนหมายเลข: "))
if n < 2:
    print(f"{n} ไม่เป็นจำนวนเฉพาะ")
else:
    for d in range(2, int(n**0.5) + 1):
        if n % d == 0:
            print(f"{n} ไม่เป็นจำนวนเฉพาะ")
            break
    else:
        print(f"{n} เป็นจำนวนเฉพาะ")

4. ผลรวมของหลัก

แบบฝึกหัดต้องการอะไร:

หาผลรวมของหลักทั้งหมดของหมายเลข.

ทำไมผลรวมของหลักถึงสำคัญ?

ผลรวมของหลักปรากฏในกฎการหารและปริศนาหมายเลขต่างๆ (เช่น หารลงตัวด้วย 3 ถ้าผลรวมของหลักหารลงตัวด้วย 3).

ตัวอย่างข้อมูลนำเข้า

1234

ตัวอย่างผลลัพธ์

10

โซลูชัน Python

# ผลรวมหลักโดยการวนซ้ำตัวอักษรและแปลงเป็นจำนวนเต็ม
s = input("ป้อนหมายเลข: ").strip()
digit_sum = sum(int(ch) for ch in s if ch.isdigit())
print(digit_sum)

5. ตัวตรวจสอบจำนวนพาลินโดรม

แบบฝึกหัดต้องการอะไร:

ตรวจสอบว่าหมายเลขอ่านเหมือนกันไปข้างหน้าและถอยหลังหรือไม่.

จำนวนพาลินโดรมคืออะไร?

หมายเลขเช่น 121, 1331 หรือ 12321 ที่ยังคงเหมือนเดิมเมื่อกลับด้าน.

ตัวอย่างข้อมูลนำเข้า

12321

ตัวอย่างผลลัพธ์

12321 is a palindrome

โซลูชัน Python

# เปรียบเทียบสตริงกับการกลับด้านเพื่อตรวจสอบพาลินโดรม
s = input("ป้อนหมายเลข: ").strip()
print(f"{s} เป็นจำนวนพาลินโดรม" if s == s[::-1] else f"{s} ไม่เป็นจำนวนพาลินโดรม")

6. หาแฟคเตอร์ทั้งหมดของหมายเลข

แบบฝึกหัดต้องการอะไร:

แสดงหมายเลขทั้งหมดที่หาร n ลงตัว.

แฟคเตอร์คืออะไร?

แฟคเตอร์คือจำนวนเต็มที่คุณสามารถคูณเพื่อให้ได้ n สำหรับ 12 แฟคเตอร์คือ 1, 2, 3, 4, 6, 12.

ตัวอย่างข้อมูลนำเข้า

12

ตัวอย่างผลลัพธ์

1 2 3 4 6 12

โซลูชัน Python

# สร้างตัวหารทั้งหมดโดยการทดสอบจาก 1..n
n = int(input("ป้อนหมายเลข: "))
factors = [d for d in range(1, n+1) if n % d == 0]
print(" ".join(map(str, factors)))

7. ตัวตรวจสอบจำนวนสมบูรณ์

แบบฝึกหัดต้องการอะไร:

ตรวจสอบว่า n เท่ากับผลรวมของตัวหารที่เหมาะสม (ไม่รวมตัวมันเอง).

จำนวนสมบูรณ์คืออะไร?

จำนวนเช่น 6 (=1+2+3) และ 28 (=1+2+4+7+14) เป็นจำนวนสมบูรณ์.

ตัวอย่างข้อมูลนำเข้า

28

ตัวอย่างผลลัพธ์

28 is a perfect number

โซลูชัน Python

# ผลรวมตัวหารที่เหมาะสม (ไม่รวม n) และเปรียบเทียบกับ n
n = int(input("ป้อนหมายเลข: "))
proper = [d for d in range(1, n) if n % d == 0]
print(f"{n} เป็นจำนวนสมบูรณ์" if sum(proper) == n else f"{n} ไม่เป็นจำนวนสมบูรณ์")

8. ตัวตรวจสอบจำนวนอาร์มสตรอง (นาร์ซิสซิสติก)

แบบฝึกหัดต้องการอะไร:

ตรวจสอบว่า n เท่ากับผลรวมของหลักที่ยกกำลังตามจำนวนหลัก.

จำนวนอาร์มสตรองคืออะไร?

ตัวอย่าง: 153 = 1³ + 5³ + 3³; 9474 = 9⁴ + 4⁴ + 7⁴ + 4⁴.

ตัวอย่างข้อมูลนำเข้า

153

ตัวอย่างผลลัพธ์

153 is an Armstrong number

โซลูชัน Python

# ยกกำลังแต่ละหลักตามจำนวนหลักและหาผลรวม
s = input("ป้อนหมายเลข: ").strip()
p = len(s)
arm = sum(int(ch)**p for ch in s)
print(f"{s} เป็นจำนวนอาร์มสตรอง" if arm == int(s) else f"{s} ไม่เป็นจำนวนอาร์มสตรอง")

9. ตัวตรวจสอบจำนวนสี่เหลี่ยมสมบูรณ์

แบบฝึกหัดต้องการอะไร:

ตรวจสอบว่าหมายเลขเป็นสี่เหลี่ยมสมบูรณ์หรือไม่.

สี่เหลี่ยมสมบูรณ์คืออะไร?

หมายเลขที่สามารถเขียนเป็น k² (เช่น 4, 9, 16, 25).

ตัวอย่างข้อมูลนำเข้า

49

ตัวอย่างผลลัพธ์

49 is a perfect square

โซลูชัน Python

# ใช้รากที่สองจำนวนเต็มเพื่อหลีกเลี่ยงปัญหาจำนวนทศนิยม
import math
n = int(input("ป้อนหมายเลข: "))
print(f"{n} เป็นสี่เหลี่ยมสมบูรณ์" if math.isqrt(n)**2 == n else f"{n} ไม่เป็นสี่เหลี่ยมสมบูรณ์")

10. ตัวตรวจสอบลูกบาศก์สมบูรณ์

แบบฝึกหัดต้องการอะไร:

ตรวจสอบว่าหมายเลขเป็นลูกบาศก์สมบูรณ์หรือไม่.

ลูกบาศก์สมบูรณ์คืออะไร?

หมายเลขที่สามารถแสดงเป็น k³ (เช่น 8, 27, 64).

ตัวอย่างข้อมูลนำเข้า

27

ตัวอย่างผลลัพธ์

27 is a perfect cube

โซลูชัน Python

# ประมาณรากที่สามโดยการปัดและตรวจสอบโดยการยกกำลังกลับ
n = int(input("ป้อนหมายเลข: "))
croot = round(n ** (1/3))
print(f"{n} เป็นลูกบาศก์สมบูรณ์" if croot**3 == n else f"{n} ไม่เป็นลูกบาศก์สมบูรณ์")

11. ตัวสร้างลำดับฟีโบนัชชี

แบบฝึกหัดต้องการอะไร:

สร้างฟีโบนัชชี n แรก.

จำนวนฟีโบนัชชีคืออะไร?

ลำดับที่เริ่มต้นด้วย 0, 1 โดยแต่ละเทอมใหม่เป็นผลรวมของสองเทอมก่อนหน้า: 0, 1, 1, 2, 3, 5, 8, …

ตัวอย่างข้อมูลนำเข้า

7

ตัวอย่างผลลัพธ์

0 1 1 2 3 5 8

โซลูชัน Python

# สร้างลำดับฟีโบนัชชีโดยใช้ตัวติดตามสองตัว
n = int(input("ป้อน n: "))
a, b = 0, 1
seq = []
for _ in range(n):
    seq.append(a)
    a, b = b, a + b
print(" ".join(map(str, seq)))

12. ตรวจสอบว่าหมายเลขอยู่ในลำดับฟีโบนัชชีหรือไม่

แบบฝึกหัดต้องการอะไร:

ตรวจสอบว่าหมายเลขที่กำหนดอยู่ในลำดับฟีโบนัชชีหรือไม่.

ข้อเท็จจริงทางคณิตศาสตร์:

n เป็นฟีโบนัชชีถ้า (5n² + 4) หรือ (5n² − 4) เป็นสี่เหลี่ยมสมบูรณ์.

ตัวอย่างข้อมูลนำเข้า

21

ตัวอย่างผลลัพธ์

21 is a Fibonacci number

โซลูชัน Python

# ใช้การทดสอบสี่เหลี่ยมสมบูรณ์ 5n^2±4 เพื่อตรวจสอบการเป็นสมาชิกฟีโบนัชชี
import math

def is_square(x: int) -> bool:
    return math.isqrt(x)**2 == x

n = int(input("ป้อนหมายเลข: "))
if is_square(5*n*n + 4) or is_square(5*n*n - 4):
    print(f"{n} เป็นจำนวนฟีโบนัชชี")
else:
    print(f"{n} ไม่เป็นจำนวนฟีโบนัชชี")

13. ตัวตรวจสอบจำนวนสามเหลี่ยม

แบบฝึกหัดต้องการอะไร:

ตรวจสอบว่า n เป็นจำนวนสามเหลี่ยมหรือไม่: n = k(k+1)/2 สำหรับจำนวนเต็ม k บางตัว.

จำนวนสามเหลี่ยมคืออะไร?

มันสร้างรูปสามเหลี่ยมจุด: 1, 3, 6, 10, 15, …

ตัวอย่างข้อมูลนำเข้า

15

ตัวอย่างผลลัพธ์

15 is a triangular number

โซลูชัน Python

# แก้ไข k(k+1)/2 = n โดยการตรวจสอบ k = floor((sqrt(8n+1)-1)/2)
import math
n = int(input("ป้อนหมายเลข: "))
k = int((math.isqrt(8*n + 1) - 1) // 2)
print(f"{n} เป็นจำนวนสามเหลี่ยม" if k * (k + 1) // 2 == n else f"{n} ไม่เป็นจำนวนสามเหลี่ยม")

14. จำนวนเชิงราบ (ทศนิยม → เศษส่วน)

แบบฝึกหัดต้องการอะไร:

แปลงทศนิยมเป็นเศษส่วนที่ลดรูป p/q.

จำนวนเชิงราบคืออะไร?

หมายเลขที่สามารถแสดงเป็นอัตราส่วนของจำนวนเต็ม (เช่น 0.75 = 3/4).

ตัวอย่างข้อมูลนำเข้า

0.75

ตัวอย่างผลลัพธ์

3/4

โซลูชัน Python

# ใช้ Fraction เพื่อแปลงทศนิยมเป็นรูป p/q และลดรูป
from fractions import Fraction
x = float(input("ป้อนทศนิยม: "))
print(Fraction(x).limit_denominator())

15. ตัวตรวจสอบจำนวนสามเหลี่ยม

แบบฝึกหัดต้องการอะไร:

ตรวจสอบว่าหมายเลขเป็นจำนวนสามเหลี่ยมหรือไม่ หมายความว่ามันสามารถสร้างรูปสามเหลี่ยมด้านเท่าได้.

จำนวนสามเหลี่ยมคืออะไร?

จำนวนสามเหลี่ยมคือผลรวมของจำนวนธรรมชาติ n แรก: 1, 3, 6, 10, 15…

ตัวอย่างข้อมูลนำเข้า

10

ตัวอย่างผลลัพธ์

10 is a triangular number

โซลูชัน Python

import math

n = int(input("ป้อนหมายเลข: "))
# สูตร: ถ้า 8n+1 เป็นสี่เหลี่ยมสมบูรณ์ แสดงว่า n เป็นจำนวนสามเหลี่ยม
check = 8 * n + 1
if int(math.isqrt(check))**2 == check:
    print(f"{n} เป็นจำนวนสามเหลี่ยม")
else:
    print(f"{n} ไม่เป็นจำนวนสามเหลี่ยม")

16. ตัวสร้างลำดับฟีโบนัชชี

แบบฝึกหัดต้องการอะไร:

สร้างลำดับฟีโบนัชชีจนถึง n เทอม.

ลำดับฟีโบนัชชีคืออะไร?

มันเป็นลำดับที่แต่ละหมายเลขเป็นผลรวมของสองหมายเลขก่อนหน้า: 0, 1, 1, 2, 3, 5, 8…

ตัวอย่างข้อมูลนำเข้า

7

ตัวอย่างผลลัพธ์

0 1 1 2 3 5 8

โซลูชัน Python

n = int(input("ป้อนจำนวนเทอม: "))
a, b = 0, 1
for _ in range(n):
    print(a, end=" ")
    a, b = b, a + b

17. ผลรวมของหลัก

แบบฝึกหัดต้องการอะไร:

คำนวณผลรวมของหลักทั้งหมดในหมายเลขที่กำหนด.

มันหมายความว่าอย่างไร?

ตัวอย่าง: หลักของ 1234 คือ 1+2+3+4 = 10.

ตัวอย่างข้อมูลนำเข้า

1234

ตัวอย่างผลลัพธ์

10

โซลูชัน Python

n = input("ป้อนหมายเลข: ")
# แปลงแต่ละตัวอักษรกลับเป็นจำนวนเต็มและหาผลรวม
s = sum(int(d) for d in n)
print(s)

18. กลับหมายเลข

แบบฝึกหัดต้องการอะไร:

กลับตัวเลขของหมายเลขที่กำหนด.

มันหมายความว่าอย่างไร?

ตัวอย่าง: 12345 กลายเป็น 54321.

ตัวอย่างข้อมูลนำเข้า

12345

ตัวอย่างผลลัพธ์

54321

โซลูชัน Python

n = input("ป้อนหมายเลข: ")
# ใช้การแบ่งส่วนเพื่อกลับ
print(n[::-1])

19. หาค่าต่ำสุดร่วมมาก (GCD)

แบบฝึกหัดต้องการอะไร:

หาหมายเลขที่มากที่สุดที่หารจำนวนเต็มสองจำนวนโดยไม่มีเศษ.

GCD คืออะไร?

ตัวหารที่ใหญ่ที่สุดที่เป็นของทั้งสองหมายเลข ตัวอย่าง: gcd(12, 18) = 6.

ตัวอย่างข้อมูลนำเข้า

12 18

ตัวอย่างผลลัพธ์

6

โซลูชัน Python

import math

a, b = map(int, input("ป้อนสองหมายเลข: ").split())
# ใช้ math.gcd เพื่อความมีประสิทธิภาพ
print(math.gcd(a, b))

20. หาค่าต่ำสุดร่วมกัน (LCM)

แบบฝึกหัดต้องการอะไร:

หาหมายเลขที่เล็กที่สุดที่หารลงตัวด้วยจำนวนเต็มทั้งสอง.

LCM คืออะไร?

ผลคูณต่ำสุดของสองหมายเลข ตัวอย่าง: lcm(4, 6) = 12.

ตัวอย่างข้อมูลนำเข้า

4 6

ตัวอย่างผลลัพธ์

12

โซลูชัน Python

import math

a, b = map(int, input("ป้อนสองหมายเลข: ").split())
# สูตร: lcm(a, b) = abs(a*b) // gcd(a, b)
print(abs(a*b) // math.gcd(a, b))