คณิตศาสตร์และการเขียนโค้ดไปด้วยกัน — ตัวเลขมีอยู่ทุกที่ในโปรแกรมมิ่ง ไม่ว่าคุณจะตรวจสอบว่าหมายเลขเป็นจำนวนเฉพาะหรือไม่ สร้างลำดับฟีโบนัชชี หรือค้นหาจำนวนพาลินโดรม ความท้าทายเล็กๆ เหล่านี้จะช่วยเพิ่มทักษะทางคณิตศาสตร์และตรรกะการเขียนโค้ดของคุณ.
ในบทความนี้ เราจะสำรวจ แบบฝึกหัดการเขียนโปรแกรมที่เป็นมิตรกับผู้เริ่มต้น 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))